AppDomainSetup.AppDomainInitializerArguments 属性
定义
获取或设置传给 AppDomainInitializer 委托所表示的回调方法的参数。Gets or sets the arguments passed to the callback method represented by the AppDomainInitializer delegate. 在初始化应用程序域时将调用该回调方法。The callback method is invoked when the application domain is initialized.
public:
property cli::array <System::String ^> ^ AppDomainInitializerArguments { cli::array <System::String ^> ^ get(); void set(cli::array <System::String ^> ^ value); };
public string[] AppDomainInitializerArguments { get; set; }
member this.AppDomainInitializerArguments : string[] with get, set
Public Property AppDomainInitializerArguments As String()
属性值
- String[]
一个字符串数组,当在 AppDomain 初始化过程中调用 AppDomainInitializer 委托所表示的回调方法时,该字符串数组将被传给该回调方法。An array of strings that is passed to the callback method represented by the AppDomainInitializer delegate, when the callback method is invoked during AppDomain initialization.
示例
下面的代码示例 ChildDomain 使用 AppDomainSetup 对象和默认应用程序域中的证据创建名为的子应用程序域。The following code example creates a child application domain named ChildDomain, using an AppDomainSetup object and evidence from the default application domain. AppDomainInitializer属性设置为回调方法,该方法 AppDomainInit 是在初始化子域时调用的。The AppDomainInitializer property is set to the callback method AppDomainInit, which is invoked when the child domain is initialized. 回调方法的参数放置在分配给属性的字符串数组中 AppDomainInitializerArguments 。The arguments for the callback method are placed in an array of strings, which is assigned to the AppDomainInitializerArguments property. 创建子域时,回调方法只是打印字符串。When the child domain is created, the callback method simply prints the strings.
using namespace System;
using namespace System::Security::Policy;
public ref class AppDomainInitializerExample
{
// The callback method invoked when the child application domain is
// initialized. The method simply displays the arguments that were
// passed to it.
//
public:
static void AppDomainInit(array<String^>^ args)
{
Console::WriteLine("AppDomain \"{0}\" is initialized with these " +
"arguments:", AppDomain::CurrentDomain->FriendlyName);
for each (String^ arg in args)
{
Console::WriteLine(" {0}", arg);
}
}
};
int main()
{
// Get a reference to the default application domain.
//
AppDomain^ currentDomain = AppDomain::CurrentDomain;
// Create the AppDomainSetup that will be used to set up the child
// AppDomain.
AppDomainSetup^ domainSetup = gcnew AppDomainSetup();
// Use the evidence from the default application domain to
// create evidence for the child application domain.
//
Evidence^ evidence = gcnew Evidence(currentDomain->Evidence);
// Create an AppDomainInitializer delegate that represents the
// callback method, AppDomainInit. Assign this delegate to the
// AppDomainInitializer property of the AppDomainSetup object.
//
AppDomainInitializer^ domainInitializer =
gcnew AppDomainInitializer(AppDomainInitializerExample::AppDomainInit);
domainSetup->AppDomainInitializer = domainInitializer;
// Create an array of strings to pass as arguments to the callback
// method. Assign the array to the AppDomainInitializerArguments
// property.
array<String^>^ initialArguments = {"String1", "String2"};
domainSetup->AppDomainInitializerArguments = initialArguments;
// Create a child application domain named "ChildDomain", using
// the evidence and the AppDomainSetup object.
//
AppDomain^ appDomain = AppDomain::CreateDomain("ChildDomain",
evidence, domainSetup);
Console::WriteLine("Press the Enter key to exit the example program.");
Console::ReadLine();
}
/* This code example produces the following output:
AppDomain "ChildDomain" is initialized with these arguments:
String1
String2
*/
using System;
using System.Security.Policy;
public class Example
{
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();
}
// The callback method invoked when the child application domain is
// initialized. The method simply displays the arguments that were
// passed to it.
//
public static void AppDomainInit(string[] args)
{
Console.WriteLine("AppDomain \"{0}\" is initialized with these arguments:",
AppDomain.CurrentDomain.FriendlyName);
foreach (string arg in args)
{
Console.WriteLine(" {0}", arg);
}
}
}
/* This code example produces the following output:
AppDomain "ChildDomain" is initialized with these arguments:
String1
String2
*/
Imports System.Security.Policy
Public Class Example
Public Shared Sub Main()
' Get a reference to the default application domain.
'
Dim current As AppDomain = AppDomain.CurrentDomain
' Create the AppDomainSetup that will be used to set up the child
' AppDomain.
Dim ads As New AppDomainSetup()
' Use the evidence from the default application domain to
' create evidence for the child application domain.
'
Dim ev As Evidence = 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.
'
Dim adi As New AppDomainInitializer(AddressOf AppDomainInit)
ads.AppDomainInitializer = adi
' Create an array of strings to pass as arguments to the callback
' method. Assign the array to the AppDomainInitializerArguments
' property.
Dim initArgs() As String = {"String1", "String2"}
ads.AppDomainInitializerArguments = initArgs
' Create a child application domain named "ChildDomain", using
' the evidence and the AppDomainSetup object.
'
Dim ad As AppDomain = _
AppDomain.CreateDomain("ChildDomain", ev, ads)
Console.WriteLine("Press the Enter key to exit the example program.")
Console.ReadLine()
End Sub
' The callback method invoked when the child application domain is
' initialized. The method simply displays the arguments that were
' passed to it.
'
Public Shared Sub AppDomainInit(ByVal args() As String)
Console.WriteLine("AppDomain ""{0}"" is initialized with these arguments:", _
AppDomain.CurrentDomain.FriendlyName)
For Each arg As String In args
Console.WriteLine(" {0}", arg)
Next
End Sub
End Class
' This code example produces the following output:
'
'AppDomain "ChildDomain" is initialized with these arguments:
' String1
' String2
注解
使用 AppDomainInitializer 属性指定在初始化过程中调用的回调方法 AppDomain 。Use the AppDomainInitializer property to specify a callback method that is invoked during AppDomain initialization. 如果 AppDomainInitializer 未设置该属性,则不使用分配给此属性的数组。If the AppDomainInitializer property is not set, the array assigned to this property is not used.
回调方法在新创建的应用程序域的上下文中执行。The callback method is executed in the context of the newly created application domain.