public static void RunInDomain(AppDomainInitializer run, string basePath = null, string[] arguments = null, Action runInThisDomain = null) { AppDomain appDomain = null; try { appDomain = AppDomain.CreateDomain( friendlyName: string.Empty, securityInfo: null, appBasePath: basePath, appRelativeSearchPath: null, shadowCopyFiles: false, adInit: run, adInitArgs: arguments ); if (runInThisDomain != null) runInThisDomain(); } finally { AppDomain.Unload(appDomain); } }
public static void RunInDomain(AppDomainInitializer run, string basePath = null, string[] arguments = null, Action runInThisDomain = null) { AppDomain appDomain = null; try { appDomain = AppDomain.CreateDomain( friendlyName: string.Empty, securityInfo: null, appBasePath: basePath, appRelativeSearchPath: null, shadowCopyFiles: false, adInit: run, adInitArgs: arguments ); if (runInThisDomain != null) { runInThisDomain(); } } finally { AppDomain.Unload(appDomain); } }
internal AppDomainSetup(AppDomainSetup setup) { application_base = setup.application_base; application_name = setup.application_name; cache_path = setup.cache_path; configuration_file = setup.configuration_file; dynamic_base = setup.dynamic_base; license_file = setup.license_file; private_bin_path = setup.private_bin_path; private_bin_path_probe = setup.private_bin_path_probe; shadow_copy_directories = setup.shadow_copy_directories; shadow_copy_files = setup.shadow_copy_files; publisher_policy = setup.publisher_policy; path_changed = setup.path_changed; loader_optimization = setup.loader_optimization; disallow_binding_redirects = setup.disallow_binding_redirects; disallow_code_downloads = setup.disallow_code_downloads; //#if NET_2_0 _activationArguments = setup._activationArguments; domain_initializer = setup.domain_initializer; domain_initializer_args = setup.domain_initializer_args; application_trust_xml = setup.application_trust_xml; disallow_appbase_probe = setup.disallow_appbase_probe; configuration_bytes = setup.configuration_bytes; //#endif }
public ExpressionOwner() { this.InstanceB = new ArrayList(); this.InstanceA = this.InstanceB; this.NullField = null; this.DecimalA = 100; this.DecimalB = 0.25m; this.KeyboardA = new Keyboard(); this.KeyboardA.StructA = new Mouse("mouse", 123); this.KeyboardA.ClassA = new Monitor(); this.EncodingA = System.Text.Encoding.ASCII; this.DelegateA = DoAction; this.ICloneableArray = new string[0]; this.ArrayA = new string[0]; this.DelegateANull = null; this.IComparableNull = null; this.IComparableString = "string"; this.ExceptionA = new ArgumentException(); this.ExceptionNull = null; this.ValueTypeStructA = new TestStruct(); this.ObjectStringA = "string"; this.ObjectIntA = 100; this.IComparableA = 100.25; this.StructA = new TestStruct(); this.VersionA = new System.Version(1, 1, 1, 1); this.ICloneableA = "abc"; this.GuidA = Guid.NewGuid(); this.List = new ArrayList(); this.List.Add("a"); this.List.Add(100); this.StringDict = new System.Collections.Specialized.StringDictionary(); this.StringDict.Add("key", "value"); this.DoubleA = 100.25; this.SingleA = 100.25f; this.Int32A = 100000; this.StringA = "string"; this.BoolA = true; this.TypeA = typeof(string); this.ByteA = 50; this.ByteB = 2; this.SByteA = -10; this.Int16A = -10; this.UInt16A = 100; this.DateTimeA = new DateTime(2007, 7, 1); this.GenericDict = new Dictionary <string, int>(); this.GenericDict.Add("a", 100); this.GenericDict.Add("b", 100); this.Dict = new Hashtable(); this.Dict.Add(100, null); this.Dict.Add("abc", null); DataTable dt = new DataTable(); dt.Columns.Add("ColumnA", typeof(int)); dt.Rows.Add(100); this.Row = dt.Rows[0]; }
internal AppDomainInitializer Unwrap() { if (Info == null) { return(null); } AppDomainInitializer retVal = null; for (int i = 0; i < Info.Length; i++) { Assembly assembly = Assembly.Load(Info[i].TargetTypeAssembly); AppDomainInitializer newVal = (AppDomainInitializer)Delegate.CreateDelegate(typeof(AppDomainInitializer), assembly.GetType(Info[i].TargetTypeName), Info[i].MethodName); if (retVal == null) { retVal = newVal; } else { retVal += newVal; } } return(retVal); }
/// <summary> /// Extends BeginInvoke so that when a state object is not needed, null does not need to be passed. /// <example> /// appdomaininitializer.BeginInvoke(args, callback); /// </example> /// </summary> public static IAsyncResult BeginInvoke(this AppDomainInitializer appdomaininitializer, String[] args, AsyncCallback callback) { if (appdomaininitializer == null) { throw new ArgumentNullException("appdomaininitializer"); } return(appdomaininitializer.BeginInvoke(args, callback, null)); }
public AppDomainEngineInvoker(string testSourcePath, AppDomainInitializer initializer = null, string appBasePath = null) { TestPlatformEventSource.Instance.TestHostAppDomainCreationStart(); this.appDomain = CreateNewAppDomain(testSourcePath, initializer, appBasePath); // Setting appbase later, as AppDomain needs to load testhost.exe into the new Domain, to have access to AppDomainInitializer method. // If we set appbase to testsource folder, then if fails to find testhost.exe resulting in FileNotFoundException for testhost.exe this.UpdateAppBaseToTestSourceLocation(testSourcePath); this.actualInvoker = CreateInvokerInAppDomain(appDomain); TestPlatformEventSource.Instance.TestHostAppDomainCreationStop(); }
internal AppDomainInitializerInfo(AppDomainInitializer init) { Info = null; if (init == null) { return; } List <ItemInfo> itemInfo = new List <ItemInfo>(); List <AppDomainInitializer> nestedDelegates = new List <AppDomainInitializer>(); nestedDelegates.Add(init); int idx = 0; while (nestedDelegates.Count > idx) { AppDomainInitializer curr = nestedDelegates[idx++]; Delegate[] list = curr.GetInvocationList(); for (int i = 0; i < list.Length; i++) { if (!list[i].Method.IsStatic) { if (list[i].Target == null) { continue; } AppDomainInitializer nested = list[i].Target as AppDomainInitializer; if (nested != null) { nestedDelegates.Add(nested); } else { throw new ArgumentException(SR.Arg_MustBeStatic, list[i].Method.ReflectedType.FullName + "::" + list[i].Method.Name); } } else { ItemInfo info = new ItemInfo(); info.TargetTypeAssembly = list[i].Method.ReflectedType.Module.Assembly.FullName; info.TargetTypeName = list[i].Method.ReflectedType.FullName; info.MethodName = list[i].Method.Name; itemInfo.Add(info); } } } Info = itemInfo.ToArray(); }
// Token: 0x06000783 RID: 1923 RVA: 0x00019FC8 File Offset: 0x000181C8 internal AppDomainInitializerInfo(AppDomainInitializer init) { this.Info = null; if (init == null) { return; } List <AppDomainInitializerInfo.ItemInfo> list = new List <AppDomainInitializerInfo.ItemInfo>(); List <AppDomainInitializer> list2 = new List <AppDomainInitializer>(); list2.Add(init); int num = 0; while (list2.Count > num) { AppDomainInitializer appDomainInitializer = list2[num++]; Delegate[] invocationList = appDomainInitializer.GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { if (!invocationList[i].Method.IsStatic) { if (invocationList[i].Target != null) { AppDomainInitializer appDomainInitializer2 = invocationList[i].Target as AppDomainInitializer; if (appDomainInitializer2 == null) { throw new ArgumentException(Environment.GetResourceString("Arg_MustBeStatic"), invocationList[i].Method.ReflectedType.FullName + "::" + invocationList[i].Method.Name); } list2.Add(appDomainInitializer2); } } else { list.Add(new AppDomainInitializerInfo.ItemInfo { TargetTypeAssembly = invocationList[i].Method.ReflectedType.Module.Assembly.FullName, TargetTypeName = invocationList[i].Method.ReflectedType.FullName, MethodName = invocationList[i].Method.Name }); } } } this.Info = list.ToArray(); }
internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData) { string[] mine = Value; if (copy != null) { string[] other = copy.Value; int mineSize = _Entries.Length; int otherSize = other.Length; int size = (otherSize < mineSize) ? otherSize : mineSize; for (int i = 0; i < size; i++) { mine[i] = other[i]; } if (size < mineSize) { for (int i = size; i < mineSize; i++) { mine[i] = null; } } _LoaderOptimization = copy._LoaderOptimization; _AppDomainInitializerArguments = copy.AppDomainInitializerArguments; _ActivationArguments = copy.ActivationArguments; if (copyDomainBoundData) { _AppDomainInitializer = copy.AppDomainInitializer; } else { _AppDomainInitializer = null; } _ConfigurationBytes = copy.GetConfigurationBytes(); } else { _LoaderOptimization = LoaderOptimization.NotSpecified; } }
internal AppDomainInitializerInfo(AppDomainInitializer init) { this.Info = (AppDomainInitializerInfo.ItemInfo[])null; if (init == null) { return; } List <AppDomainInitializerInfo.ItemInfo> itemInfoList = new List <AppDomainInitializerInfo.ItemInfo>(); List <AppDomainInitializer> domainInitializerList = new List <AppDomainInitializer>(); domainInitializerList.Add(init); int num = 0; while (domainInitializerList.Count > num) { Delegate[] invocationList = domainInitializerList[num++].GetInvocationList(); for (int index = 0; index < invocationList.Length; ++index) { if (!invocationList[index].Method.IsStatic) { if (invocationList[index].Target != null) { AppDomainInitializer domainInitializer = invocationList[index].Target as AppDomainInitializer; if (domainInitializer == null) { throw new ArgumentException(Environment.GetResourceString("Arg_MustBeStatic"), invocationList[index].Method.ReflectedType.FullName + "::" + invocationList[index].Method.Name); } domainInitializerList.Add(domainInitializer); } } else { itemInfoList.Add(new AppDomainInitializerInfo.ItemInfo() { TargetTypeAssembly = invocationList[index].Method.ReflectedType.Module.Assembly.FullName, TargetTypeName = invocationList[index].Method.ReflectedType.FullName, MethodName = invocationList[index].Method.Name }); } } } this.Info = itemInfoList.ToArray(); }
internal AppDomainInitializerInfo(AppDomainInitializer init) { this.Info = null; if (init == null) { return; } List<AppDomainInitializerInfo.ItemInfo> list = new List<AppDomainInitializerInfo.ItemInfo>(); List<AppDomainInitializer> list2 = new List<AppDomainInitializer>(); list2.Add(init); int num = 0; while (list2.Count > num) { AppDomainInitializer appDomainInitializer = list2[num++]; Delegate[] invocationList = appDomainInitializer.GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { if (!invocationList[i].Method.IsStatic) { if (invocationList[i].Target != null) { AppDomainInitializer appDomainInitializer2 = invocationList[i].Target as AppDomainInitializer; if (appDomainInitializer2 == null) { throw new ArgumentException(Environment.GetResourceString("Arg_MustBeStatic"), invocationList[i].Method.ReflectedType.FullName + "::" + invocationList[i].Method.Name); } list2.Add(appDomainInitializer2); } } else { list.Add(new AppDomainInitializerInfo.ItemInfo { TargetTypeAssembly = invocationList[i].Method.ReflectedType.Module.Assembly.FullName, TargetTypeName = invocationList[i].Method.ReflectedType.FullName, MethodName = invocationList[i].Method.Name }); } } } this.Info = list.ToArray(); }
private void DeserializeNonPrimitives() { lock (this) { if (serialized_non_primitives == null) { return; } BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(serialized_non_primitives); object [] arr = (object [])bf.Deserialize(ms); _activationArguments = (ActivationArguments)arr [0]; domain_initializer = (AppDomainInitializer)arr [1]; application_trust = (ApplicationTrust)arr [2]; serialized_non_primitives = null; } }
internal AppDomainInitializerInfo(AppDomainInitializer init) { if (init != null) { ArrayList list = new ArrayList(); ArrayList list2 = new ArrayList(); list2.Add(init); int num = 0; while (list2.Count > num) { Delegate[] invocationList = ((AppDomainInitializer) list2[num++]).GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { if (!invocationList[i].Method.IsStatic) { if (invocationList[i].Target != null) { AppDomainInitializer target = invocationList[i].Target as AppDomainInitializer; if (target == null) { throw new ArgumentException(Environment.GetResourceString("Arg_MustBeStatic"), invocationList[i].Method.ReflectedType.FullName + "::" + invocationList[i].Method.Name); } list2.Add(target); } } else { ItemInfo info = new ItemInfo { TargetTypeAssembly = invocationList[i].Method.ReflectedType.Module.Assembly.FullName, TargetTypeName = invocationList[i].Method.ReflectedType.FullName, MethodName = invocationList[i].Method.Name }; list.Add(info); } } } this.Info = (ItemInfo[]) list.ToArray(typeof(ItemInfo)); } }
internal AppDomainInitializerInfo(AppDomainInitializer init) { if (init != null) { ArrayList list = new ArrayList(); ArrayList list2 = new ArrayList(); list2.Add(init); int num = 0; while (list2.Count > num) { Delegate[] invocationList = ((AppDomainInitializer)list2[num++]).GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { if (!invocationList[i].Method.IsStatic) { if (invocationList[i].Target != null) { AppDomainInitializer target = invocationList[i].Target as AppDomainInitializer; if (target == null) { throw new ArgumentException(Environment.GetResourceString("Arg_MustBeStatic"), invocationList[i].Method.ReflectedType.FullName + "::" + invocationList[i].Method.Name); } list2.Add(target); } } else { ItemInfo info = new ItemInfo { TargetTypeAssembly = invocationList[i].Method.ReflectedType.Module.Assembly.FullName, TargetTypeName = invocationList[i].Method.ReflectedType.FullName, MethodName = invocationList[i].Method.Name }; list.Add(info); } } } this.Info = (ItemInfo[])list.ToArray(typeof(ItemInfo)); } }
private AppDomain CreateNewAppDomain(string testSourcePath, AppDomainInitializer initializer, string appBasePath) { var appDomainSetup = new AppDomainSetup(); var testSourceFolder = Path.GetDirectoryName(testSourcePath); if (!string.IsNullOrEmpty(appBasePath)) { appDomainSetup.ApplicationBase = appBasePath; } appDomainSetup.LoaderOptimization = LoaderOptimization.MultiDomainHost; //Setup AppDomainInitialzier to set user defined Culture appDomainSetup.AppDomainInitializer = initializer ?? SetAppDomainCulture; appDomainSetup.AppDomainInitializerArguments = new string[] { }; // Set User Config file as app domain config SetConfigurationFile(appDomainSetup, testSourcePath, testSourceFolder); // Create new AppDomain return(AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup)); }
internal AppDomainInitializer Unwrap() { if (this.Info == null) { return((AppDomainInitializer)null); } AppDomainInitializer domainInitializer1 = (AppDomainInitializer)null; new ReflectionPermission(ReflectionPermissionFlag.MemberAccess).Assert(); for (int index = 0; index < this.Info.Length; ++index) { AppDomainInitializer domainInitializer2 = (AppDomainInitializer)Delegate.CreateDelegate(typeof(AppDomainInitializer), Assembly.Load(this.Info[index].TargetTypeAssembly).GetType(this.Info[index].TargetTypeName), this.Info[index].MethodName); if (domainInitializer1 == null) { domainInitializer1 = domainInitializer2; } else { domainInitializer1 += domainInitializer2; } } return(domainInitializer1); }
public static void Main() { // Get a reference to the default application domain. // AppDomain current = AppDomain.CurrentDomain; // Create the AppDomainSetup that will be used to set up the child // AppDomain. AppDomainSetup ads = new AppDomainSetup(); // Use the evidence from the default application domain to // create evidence for the child application domain. // Evidence ev = new Evidence(current.Evidence); // Create an AppDomainInitializer delegate that represents the // callback method, AppDomainInit. Assign this delegate to the // AppDomainInitializer property of the AppDomainSetup object. // AppDomainInitializer adi = new AppDomainInitializer(AppDomainInit); ads.AppDomainInitializer = adi; // Create an array of strings to pass as arguments to the callback // method. Assign the array to the AppDomainInitializerArguments // property. string[] initArgs = { "String1", "String2" }; ads.AppDomainInitializerArguments = initArgs; // Create a child application domain named "ChildDomain", using // the evidence and the AppDomainSetup object. // AppDomain ad = AppDomain.CreateDomain("ChildDomain", ev, ads); Console.WriteLine("Press the Enter key to exit the example program."); Console.ReadLine(); }
internal AppDomainSetup(AppDomainSetup setup) { this.application_base = setup.application_base; this.application_name = setup.application_name; this.cache_path = setup.cache_path; this.configuration_file = setup.configuration_file; this.dynamic_base = setup.dynamic_base; this.license_file = setup.license_file; this.private_bin_path = setup.private_bin_path; this.private_bin_path_probe = setup.private_bin_path_probe; this.shadow_copy_directories = setup.shadow_copy_directories; this.shadow_copy_files = setup.shadow_copy_files; this.publisher_policy = setup.publisher_policy; this.path_changed = setup.path_changed; this.loader_optimization = setup.loader_optimization; this.disallow_binding_redirects = setup.disallow_binding_redirects; this.disallow_code_downloads = setup.disallow_code_downloads; this._activationArguments = setup._activationArguments; this.domain_initializer = setup.domain_initializer; this.domain_initializer_args = setup.domain_initializer_args; this.application_trust_xml = setup.application_trust_xml; this.disallow_appbase_probe = setup.disallow_appbase_probe; this.configuration_bytes = setup.configuration_bytes; }
internal AppDomainInitializer Unwrap() { if (this.Info == null) { return(null); } AppDomainInitializer a = null; new ReflectionPermission(ReflectionPermissionFlag.MemberAccess).Assert(); for (int i = 0; i < this.Info.Length; i++) { Assembly assembly = Assembly.Load(this.Info[i].TargetTypeAssembly); AppDomainInitializer b = (AppDomainInitializer)Delegate.CreateDelegate(typeof(AppDomainInitializer), assembly.GetType(this.Info[i].TargetTypeName), this.Info[i].MethodName); if (a == null) { a = b; } else { a = (AppDomainInitializer)Delegate.Combine(a, b); } } return(a); }
public static AppDomain CreateDomain(string friendlyName, System.Security.Policy.Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { return(default(AppDomain)); }
public static object GetProxy(String domainName, String assemblyName, String typeName, AppDomainInitializer initializer = null, string[] initializerArguments = null) { AppDomain domain; if (!m_domains.TryGetValue(domainName, out domain)) { AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory; setup.PrivateBinPath = "bin"; setup.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; setup.AppDomainInitializer = initializer; setup.AppDomainInitializerArguments = initializerArguments; Evidence evidence = AppDomain.CurrentDomain.Evidence; domain = AppDomain.CreateDomain(domainName, evidence, setup); m_domains.Add(domainName, domain); } return(domain.CreateInstanceAndUnwrap(assemblyName, typeName)); }
internal AppDomainSetup (AppDomainSetup setup) { application_base = setup.application_base; application_name = setup.application_name; cache_path = setup.cache_path; configuration_file = setup.configuration_file; dynamic_base = setup.dynamic_base; license_file = setup.license_file; private_bin_path = setup.private_bin_path; private_bin_path_probe = setup.private_bin_path_probe; shadow_copy_directories = setup.shadow_copy_directories; shadow_copy_files = setup.shadow_copy_files; publisher_policy = setup.publisher_policy; path_changed = setup.path_changed; loader_optimization = setup.loader_optimization; disallow_binding_redirects = setup.disallow_binding_redirects; disallow_code_downloads = setup.disallow_code_downloads; _activationArguments = setup._activationArguments; domain_initializer = setup.domain_initializer; application_trust = setup.application_trust; domain_initializer_args = setup.domain_initializer_args; disallow_appbase_probe = setup.disallow_appbase_probe; configuration_bytes = setup.configuration_bytes; }
private void DeserializeNonPrimitives () { lock (this) { if (serialized_non_primitives == null) return; BinaryFormatter bf = new BinaryFormatter (); MemoryStream ms = new MemoryStream (serialized_non_primitives); object [] arr = (object []) bf.Deserialize (ms); _activationArguments = (ActivationArguments) arr [0]; domain_initializer = (AppDomainInitializer) arr [1]; application_trust = (ApplicationTrust) arr [2]; serialized_non_primitives = null; } }
public static AppDomain CreateDomain(string friendlyName, System.Security.Policy.Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { AppDomainSetup info = new AppDomainSetup { ApplicationBase = appBasePath, PrivateBinPath = appRelativeSearchPath, AppDomainInitializer = adInit, AppDomainInitializerArguments = adInitArgs }; if (shadowCopyFiles) { info.ShadowCopyFiles = "true"; } return CreateDomain(friendlyName, securityInfo, info); }
public static AppDomain CreateDomain (string friendlyName, Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { throw new PlatformNotSupportedException ("AppDomain.CreateDomain is not supported on the current platform."); }
/// <inheritdoc /> public IAppDomain CreateDomain(string friendlyName, Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { return(new AppDomainWrap(AppDomain.CreateDomain(friendlyName, securityInfo, appBasePath, appRelativeSearchPath, shadowCopyFiles, adInit, adInitArgs))); }
public static AppDomain CreateDomain(string friendlyName, System.Security.Policy.Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { return default(AppDomain); }
public static AppDomain CreateDomain(string friendlyName, Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { AppDomainSetup appDomainSetup = new AppDomainSetup(); appDomainSetup.ApplicationBase = appBasePath; appDomainSetup.PrivateBinPath = appRelativeSearchPath; appDomainSetup.AppDomainInitializer = adInit; appDomainSetup.AppDomainInitializerArguments = adInitArgs; if (shadowCopyFiles) { appDomainSetup.ShadowCopyFiles = "true"; } return AppDomain.CreateDomain(friendlyName, securityInfo, appDomainSetup); }
public ExpressionOwner() { this.InstanceB = new ArrayList(); this.InstanceA = this.InstanceB; this.NullField = null; this.DecimalA = 100; this.DecimalB = 0.25M; this.KeyboardA = new Keyboard(); this.KeyboardA.StructA = new Mouse("mouse", 123); this.KeyboardA.ClassA = new Monitor(); this.EncodingA = System.Text.Encoding.ASCII; this.DelegateA = DoAction; this.ICloneableArray = new string[] {}; this.ArrayA = new string[] {}; this.DelegateANull = null; this.IComparableNull = null; this.IComparableString = "string"; this.ExceptionA = new ArgumentException(); this.ExceptionNull = null; this.ValueTypeStructA = new TestStruct(); this.ObjectStringA = "string"; this.ObjectIntA = 100; this.IComparableA = 100.25; this.StructA = new TestStruct(); this.VersionA = new System.Version(1, 1, 1, 1); this.ICloneableA = "abc"; this.GuidA = Guid.NewGuid(); this.List = new ArrayList(); this.List.Add("a"); this.List.Add(100); this.StringDict = new System.Collections.Specialized.StringDictionary(); this.StringDict.Add("key", "value"); this.DoubleA = 100.25; this.SingleA = 100.25f; this.Int32A = 100000; this.StringA = "string"; this.BoolA = true; this.TypeA = typeof(string); this.ByteA = 50; this.ByteB = 2; this.SByteA = -10; this.Int16A = -10; this.UInt16A = 100; this.DateTimeA = new DateTime(2007, 7, 1); this.GenericDict = new Dictionary<string, int>(); this.GenericDict.Add("a", 100); this.GenericDict.Add("b", 100); this.Dict = new Hashtable(); this.Dict.Add(100, null); this.Dict.Add("abc", null); DataTable dt = new DataTable(); dt.Columns.Add("ColumnA", typeof(int)); dt.Rows.Add(100); this.Row = dt.Rows[0]; }
// // 摘要: // 使用证据、应用程序基路径、相对搜索路径和指定是否向应用程序域中加载程序集的影像副本的形参创建具有给定名称的新应用程序域。指定在初始化应用程序域时调用的回调方法,以及传递回调方法的字符串实参数组。 // // 参数: // friendlyName: // 域的友好名称。此友好名称可在用户界面中显示以标识域。有关更多信息,请参见System.AppDomain.FriendlyName。 // // securityInfo: // 确定代码标识的证据,该代码在应用程序域中运行。传递 null 以使用当前应用程序域的证据。 // // appBasePath: // 基目录,由程序集冲突解决程序用来探测程序集。有关更多信息,请参见System.AppDomain.BaseDirectory。 // // appRelativeSearchPath: // 相对于基目录的路径,在此程序集冲突解决程序应探测专用程序集。有关更多信息,请参见System.AppDomain.RelativeSearchPath。 // // shadowCopyFiles: // 如果为 true,则将程序集的影像副本加载到应用程序域中。有关更多信息,请参见 System.AppDomain.ShadowCopyFiles // 和Shadow Copying Assemblies。 // // adInit: // System.AppDomainInitializer 委托,表示初始化新的 System.AppDomain 对象时调用的回调方法。 // // adInitArgs: // 字符串实参数组,在初始化新的 System.AppDomain 对象时传递给由 adInit 表示的回调。 // // 返回结果: // 新创建的应用程序域。 // // 异常: // System.ArgumentNullException: // friendlyName 为 null。 public static AppDomain CreateDomain(string friendlyName, Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { return null; }
public ExpressionOwner() { this.IntArr = new int[] { 100, 200, 300 }; this.StringArr = new string[] { "a", "b", "c" }; this.DoubleArr = new double[] { 1.1, 2.2, 3.3 }; this.BoolArr = new bool[] { true, default(bool), true }; this.CharArr = new char[] { '.' }; this.DateTimeArr = new DateTime[] { new DateTime(2007, 7, 1) }; this.AsciiEncodingArr = new ASCIIEncoding[0]; this.InstanceB = new ArrayList(); this.InstanceA = this.InstanceB; this.NullField = null; this.DecimalA = new decimal(100L); this.DecimalB = 0.25m; this.KeyboardA = default(Keyboard); this.KeyboardA.StructA = new Mouse("mouse", 123); this.KeyboardA.ClassA = new Monitor(); this.EncodingA = Encoding.ASCII; this.DelegateA = new AppDomainInitializer(this.DoAction); this.ICloneableArray = new string[0]; this.ArrayA = new string[0]; this.DelegateANull = null; this.IComparableNull = null; this.IComparableString = "string"; this.ExceptionA = new ArgumentException(); this.ExceptionNull = null; this.ValueTypeStructA = default(TestStruct); this.ObjectStringA = "string"; this.ObjectIntA = 100; this.IComparableA = (IComparable)100.25; this.StructA = default(TestStruct); this.VersionA = new Version(1, 1, 1, 1); this.ICloneableA = "abc"; this.GuidA = Guid.NewGuid(); this.List = new ArrayList(); this.List.Add("a"); this.List.Add(100); this.StringDict = new StringDictionary(); this.StringDict.Add("key", "value"); this.DoubleA = 100.25; this.SingleA = 100.25f; this.Int32A = 100000; this.StringA = "string"; this.BoolA = true; this.TypeA = typeof(string); this.ByteA = 50; this.ByteB = 2; this.SByteA = -10; this.Int16A = -10; this.UInt16A = 100; this.DateTimeA = new DateTime(2007, 7, 1); this.GenericDict = new Dictionary <string, int>(); this.GenericDict.Add("a", 100); this.GenericDict.Add("b", 100); this.Dict = new Hashtable(); this.Dict.Add(100, null); this.Dict.Add("abc", null); this.Row = new DataTable { Columns = { { "ColumnA", typeof(int) } }, Rows = { new object[] { 100 } } }.Rows[0]; }
internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData) { string[] mine = Value; if(copy != null) { string[] other = copy.Value; int mineSize = _Entries.Length; int otherSize = other.Length; int size = (otherSize < mineSize) ? otherSize : mineSize; for (int i = 0; i < size; i++) mine[i] = other[i]; if (size < mineSize) { // This case can happen when the copy is a deserialized version of // an AppDomainSetup object serialized by Everett. for (int i = size; i < mineSize; i++) mine[i] = null; } _LoaderOptimization = copy._LoaderOptimization; _AppDomainInitializerArguments = copy.AppDomainInitializerArguments; #if FEATURE_CLICKONCE _ActivationArguments = copy.ActivationArguments; #endif _ApplicationTrust = copy._ApplicationTrust; if (copyDomainBoundData) _AppDomainInitializer = copy.AppDomainInitializer; else _AppDomainInitializer = null; _ConfigurationBytes = copy.GetConfigurationBytes(); #if FEATURE_COMINTEROP _DisableInterfaceCache = copy._DisableInterfaceCache; #endif // FEATURE_COMINTEROP _AppDomainManagerAssembly = copy.AppDomainManagerAssembly; _AppDomainManagerType = copy.AppDomainManagerType; #if FEATURE_APTCA _AptcaVisibleAssemblies = copy.PartialTrustVisibleAssemblies; #endif if (copy._CompatFlags != null) { SetCompatibilitySwitches(copy._CompatFlags.Keys); } #if !FEATURE_CORECLR if(copy._AppDomainSortingSetupInfo != null) { _AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo(copy._AppDomainSortingSetupInfo); } #endif _TargetFrameworkName = copy._TargetFrameworkName; #if FEATURE_RANDOMIZED_STRING_HASHING _UseRandomizedStringHashing = copy._UseRandomizedStringHashing; #endif } else _LoaderOptimization = LoaderOptimization.NotSpecified; }
public Initializer (AppDomainInitializer initializer, string [] arguments) { this.initializer = initializer; this.arguments = arguments; }
/// <inheritdoc /> public IAppDomain CreateDomain(string friendlyName, Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { return new AppDomainWrap(AppDomain.CreateDomain(friendlyName, securityInfo, appBasePath, appRelativeSearchPath, shadowCopyFiles, adInit, adInitArgs)); }
// static methods public static AppDomain CreateDomain (string friendlyName, Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { AppDomainSetup info = CreateDomainSetup (appBasePath, appRelativeSearchPath, shadowCopyFiles); info.AppDomainInitializerArguments = adInitArgs; info.AppDomainInitializer = adInit; return CreateDomain (friendlyName, securityInfo, info); }
internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData) { string[] mine = Value; if(copy != null) { string[] other = copy.Value; int mineSize = _Entries.Length; int otherSize = other.Length; int size = (otherSize < mineSize) ? otherSize : mineSize; for (int i = 0; i < size; i++) mine[i] = other[i]; if (size < mineSize) { for (int i = size; i < mineSize; i++) mine[i] = null; } _LoaderOptimization = copy._LoaderOptimization; _AppDomainInitializerArguments = copy.AppDomainInitializerArguments; _ActivationArguments = copy.ActivationArguments; if (copyDomainBoundData) _AppDomainInitializer = copy.AppDomainInitializer; else _AppDomainInitializer = null; _ConfigurationBytes = copy.GetConfigurationBytes(); } else _LoaderOptimization = LoaderOptimization.NotSpecified; }
internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData) { string[] mine = Value; if (copy != null) { string[] other = copy.Value; int mineSize = _Entries.Length; int otherSize = other.Length; int size = (otherSize < mineSize) ? otherSize : mineSize; for (int i = 0; i < size; i++) { mine[i] = other[i]; } if (size < mineSize) { // This case can happen when the copy is a deserialized version of // an AppDomainSetup object serialized by Everett. for (int i = size; i < mineSize; i++) { mine[i] = null; } } _LoaderOptimization = copy._LoaderOptimization; _AppDomainInitializerArguments = copy.AppDomainInitializerArguments; _ApplicationTrust = copy._ApplicationTrust; if (copyDomainBoundData) { _AppDomainInitializer = copy.AppDomainInitializer; } else { _AppDomainInitializer = null; } _ConfigurationBytes = copy.GetConfigurationBytes(); #if FEATURE_COMINTEROP _DisableInterfaceCache = copy._DisableInterfaceCache; #endif // FEATURE_COMINTEROP _AppDomainManagerAssembly = copy.AppDomainManagerAssembly; _AppDomainManagerType = copy.AppDomainManagerType; if (copy._CompatFlags != null) { SetCompatibilitySwitches(copy._CompatFlags.Keys); } _TargetFrameworkName = copy._TargetFrameworkName; #if FEATURE_RANDOMIZED_STRING_HASHING _UseRandomizedStringHashing = copy._UseRandomizedStringHashing; #endif } else { _LoaderOptimization = LoaderOptimization.NotSpecified; } }
internal AppDomainInitializerInfo(AppDomainInitializer init) { Info=null; if (init==null) return; List<ItemInfo> itemInfo = new List<ItemInfo>(); List<AppDomainInitializer> nestedDelegates = new List<AppDomainInitializer>(); nestedDelegates.Add(init); int idx=0; while (nestedDelegates.Count>idx) { AppDomainInitializer curr = nestedDelegates[idx++]; Delegate[] list= curr.GetInvocationList(); for (int i=0;i<list.Length;i++) { if (!list[i].Method.IsStatic) { if(list[i].Target==null) continue; AppDomainInitializer nested = list[i].Target as AppDomainInitializer; if (nested!=null) nestedDelegates.Add(nested); else throw new ArgumentException(Environment.GetResourceString("Arg_MustBeStatic"), list[i].Method.ReflectedType.FullName+"::"+list[i].Method.Name); } else { ItemInfo info=new ItemInfo(); info.TargetTypeAssembly=list[i].Method.ReflectedType.Module.Assembly.FullName; info.TargetTypeName=list[i].Method.ReflectedType.FullName; info.MethodName=list[i].Method.Name; itemInfo.Add(info); } } } Info = itemInfo.ToArray(); }
public static AppDomain CreateDomain(String friendlyName, Evidence securityInfo, // Optional String appBasePath, String appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs) { AppDomainSetup info = new AppDomainSetup(); info.ApplicationBase = appBasePath; info.PrivateBinPath = appRelativeSearchPath; info.AppDomainInitializer=adInit; info.AppDomainInitializerArguments=adInitArgs; if(shadowCopyFiles) info.ShadowCopyFiles = "true"; return CreateDomain(friendlyName, securityInfo, info); }
internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData) { string[] value = this.Value; if (copy != null) { string[] value2 = copy.Value; int num = this._Entries.Length; int num2 = value2.Length; int num3 = (num2 < num) ? num2 : num; for (int i = 0; i < num3; i++) { value[i] = value2[i]; } if (num3 < num) { for (int j = num3; j < num; j++) { value[j] = null; } } this._LoaderOptimization = copy._LoaderOptimization; this._AppDomainInitializerArguments = copy.AppDomainInitializerArguments; this._ActivationArguments = copy.ActivationArguments; this._ApplicationTrust = copy._ApplicationTrust; if (copyDomainBoundData) { this._AppDomainInitializer = copy.AppDomainInitializer; } else { this._AppDomainInitializer = null; } this._ConfigurationBytes = copy.GetConfigurationBytes(); this._DisableInterfaceCache = copy._DisableInterfaceCache; this._AppDomainManagerAssembly = copy.AppDomainManagerAssembly; this._AppDomainManagerType = copy.AppDomainManagerType; this._AptcaVisibleAssemblies = copy.PartialTrustVisibleAssemblies; if (copy._CompatFlags != null) { this._CompatFlags = new Dictionary<string, object>(copy._CompatFlags); return; } } else { this._LoaderOptimization = LoaderOptimization.NotSpecified; } }