Eto.Designer.AppDomainProxy.SetBuilder C# (CSharp) Method

SetBuilder() public method

public SetBuilder ( string fileName ) : bool
fileName string
return bool
		public bool SetBuilder(string fileName)
		{
			return designPanel.SetBuilder(fileName);
		}

Usage Example

コード例 #1
0
        bool SetupAppDomain(bool setBuilder)
        {
            if (!requiresNewDomain && domain != null)
            {
                EnsureWatcher();
                return(false);
            }

            requiresNewDomain = false;
#pragma warning disable 618
            // doesn't work without for some reason, and there's no non-obsolete alternative.
            if (!AppDomain.CurrentDomain.ShadowCopyFiles)
            {
                AppDomain.CurrentDomain.SetShadowCopyFiles();
            }
#pragma warning restore 618

            var baseDir            = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var initializeAssembly = Builders.BaseCompiledInterfaceBuilder.InitializeAssembly;

            var shadowCopyDirs = string.Join(";", GetShadowCopyDirs().Distinct());
            var setup          = new AppDomainSetup
            {
                ApplicationBase = AppDomain.CurrentDomain.BaseDirectory,
                PrivateBinPath  = $"{baseDir};{shadowCopyDirs}",

                ShadowCopyFiles       = "true",
                ShadowCopyDirectories = shadowCopyDirs,
                CachePath             = Path.Combine(Path.GetDirectoryName(MainAssembly), "Eto.Designer"),

                LoaderOptimization = LoaderOptimization.MultiDomain,
                //LoaderOptimization = LoaderOptimization.NotSpecified
            };

            proxy  = null;
            domain = AppDomain.CreateDomain("eto.designer." + domainCount++, null, setup);
            try
            {
                using (AssemblyResolver.Register(baseDir))
                {
                    var proxyObject = domain.CreateInstanceFromAndUnwrap(typeof(AppDomainProxy).Assembly.Location, typeof(AppDomainProxy).FullName) as AppDomainProxy;
                    proxy = proxyObject as AppDomainProxy;
                    if (proxy == null)
                    {
                        throw new InvalidOperationException($"Could not create proxy for domain\nApplicationBase: {AppDomain.CurrentDomain.BaseDirectory}\nBaseDir: {baseDir}\nShadowCopyDirs: {shadowCopyDirs}");
                    }
                }
                proxy.Init(Platform.Instance.GetType().AssemblyQualifiedName, initializeAssembly, MainAssembly, references);

                proxy.HookupEvents(eventSink);

                if (setBuilder)
                {
                    proxy.SetBuilder(fileName);
                }
                if (!string.IsNullOrEmpty(code))
                {
                    proxy.Update(code);
                }
            }
            catch (Exception ex)
            {
                UnloadDomain(domain);
                domain = null;
                proxy  = null;
                throw new InvalidOperationException($"Could not set up proxy for domain: {ex.GetBaseException().Message}", ex);
            }

            EnsureWatcher();

            return(true);
        }
All Usage Examples Of Eto.Designer.AppDomainProxy::SetBuilder