AppDomain.CreateInstance 方法

定义

创建指定程序集中定义的指定类型的新实例。

重载

CreateInstance(String, String)

创建指定程序集中定义的指定类型的新实例。

CreateInstance(String, String, Object[])

创建指定程序集中定义的指定类型的新实例。 参数指定激活属性数组。

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

创建指定程序集中定义的指定类型的新实例。 参数指定绑定器、绑定标志、构造函数参数、用于解释参数的区域性特定信息以及可选的激活属性。

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
已过时.

创建指定程序集中定义的指定类型的新实例。 参数指定绑定器、绑定标志、构造函数参数、用于解释参数、激活属性和创建类型的授权的特定于区域性的信息。

CreateInstance(String, String)

Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs

创建指定程序集中定义的指定类型的新实例。

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName);
public System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
member this.CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
abstract member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

参数

assemblyName
String

程序集的显示名称。 请参阅 FullName

typeName
String

请求类型的完全限定名称,包括命名空间而不是程序集,由 FullName 属性返回。

返回

一个对象,它是由 typeName指定的新实例的包装器。 需要取消包装返回值才能访问实际对象。

实现

例外

在卸载的应用程序域中尝试此操作。

assemblyNametypeNamenull

assemblyName 当前加载的运行时不是有效的程序集。

程序集或模块加载了两次,其中包含两个不同的证据。

找不到 assemblyName

调用方无权调用此构造函数。

找不到匹配的公共构造函数。

assemblyName中找不到 typeName

此实例 null

注解

此方法调用 typeName的无参数构造函数。

有关 assemblyName格式,请参阅 AssemblyName

尝试对不是当前应用程序域的目标应用程序域调用 CreateInstance 将导致在目标应用程序域中成功加载程序集。 由于 AssemblyMarshalByRefObject,因此当此方法尝试将加载的程序集 Assembly 返回到当前应用程序域时,公共语言运行时将尝试将程序集加载到当前应用程序域中,并且加载可能会失败。 如果两个应用程序域的路径设置不同,则加载到当前应用程序域的程序集可能与首次加载的程序集不同。

另请参阅

适用于

CreateInstance(String, String, Object[])

Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs

创建指定程序集中定义的指定类型的新实例。 参数指定激活属性数组。

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, object?[]? activationAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
member this.CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
abstract member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle

参数

assemblyName
String

程序集的显示名称。 请参阅 FullName

typeName
String

请求类型的完全限定名称,包括命名空间而不是程序集,由 FullName 属性返回。

activationAttributes
Object[]

可以参与激活的一个或多个属性的数组。 通常,包含单个 UrlAttribute 对象的数组,该对象指定激活远程对象所需的 URL。

此参数与客户端激活的对象相关。客户端激活是保留的旧技术,用于向后兼容,但不建议用于新开发。 分布式应用程序应改用 Windows Communication Foundation。

返回

一个对象,它是由 typeName指定的新实例的包装器。 需要取消包装返回值才能访问实际对象。

实现

例外

在卸载的应用程序域中尝试此操作。

assemblyNametypeNamenull

assemblyName 当前加载的运行时不是有效的程序集。

程序集或模块加载了两次,其中包含两个不同的证据。

找不到 assemblyName

调用方无权调用此构造函数。

找不到匹配的公共构造函数。

调用方无法为不继承自 MarshalByRefObject的对象提供激活属性。

assemblyName中找不到 typeName

此实例 null

注解

此方法调用 typeName的无参数构造函数。

有关 assemblyName格式,请参阅 AssemblyName

尝试对不是当前应用程序域的目标应用程序域调用 CreateInstance 将导致在目标应用程序域中成功加载程序集。 由于 AssemblyMarshalByRefObject,因此当此方法尝试将加载的程序集 Assembly 返回到当前应用程序域时,公共语言运行时将尝试将程序集加载到当前应用程序域中,并且加载可能会失败。 如果两个应用程序域的路径设置不同,则加载到当前应用程序域的程序集可能与首次加载的程序集不同。

另请参阅

适用于

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs

创建指定程序集中定义的指定类型的新实例。 参数指定绑定器、绑定标志、构造函数参数、用于解释参数的区域性特定信息以及可选的激活属性。

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
member this.CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

参数

assemblyName
String

程序集的显示名称。 请参阅 FullName

typeName
String

请求类型的完全限定名称,包括命名空间而不是程序集,由 FullName 属性返回。

ignoreCase
Boolean

一个布尔值,指定是否执行区分大小写的搜索。

bindingAttr
BindingFlags

影响搜索 typeName 构造函数的零个或多个位标志的组合。 如果 bindingAttr 为零,则会对公共构造函数执行区分大小写的搜索。

binder
Binder

一个对象,它允许绑定、强制参数类型、调用成员以及使用反射检索 MemberInfo 对象。 如果 binder 为 null,则使用默认绑定器。

args
Object[]

要传递给构造函数的参数。 此参数数组必须以数字、顺序和键入要调用的构造函数的参数匹配。 如果首选无参数构造函数,args 必须是空数组或 null。

culture
CultureInfo

控制 args 强制 typeName 构造函数声明的正式类型的区域性特定信息。 如果 culturenull,则使用当前线程的 CultureInfo

activationAttributes
Object[]

可以参与激活的一个或多个属性的数组。 通常,包含单个 UrlAttribute 对象的数组,该对象指定激活远程对象所需的 URL。

此参数与客户端激活的对象相关。 客户端激活是保留的旧技术,用于向后兼容,但不建议用于新开发。 分布式应用程序应改用 Windows Communication Foundation。

返回

一个对象,它是由 typeName指定的新实例的包装器。 需要取消包装返回值才能访问实际对象。

例外

在卸载的应用程序域中尝试此操作。

assemblyNametypeNamenull

assemblyName 当前加载的运行时不是有效的程序集。

程序集或模块加载了两次,其中包含两个不同的证据。

找不到 assemblyName

调用方无权调用此构造函数。

找不到匹配的构造函数。

调用方无法为不继承自 MarshalByRefObject的对象提供激活属性。

assemblyName中找不到 typeName

此实例 null

注解

有关 assemblyName格式,请参阅 AssemblyName

尝试对不是当前应用程序域的目标应用程序域调用 CreateInstance 将导致在目标应用程序域中成功加载程序集。 由于 AssemblyMarshalByRefObject,因此当此方法尝试将加载的程序集 Assembly 返回到当前应用程序域时,公共语言运行时将尝试将程序集加载到当前应用程序域中,并且加载可能会失败。 如果两个应用程序域的路径设置不同,则加载到当前应用程序域的程序集可能与首次加载的程序集不同。

另请参阅

适用于

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

注意

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

创建指定程序集中定义的指定类型的新实例。 参数指定绑定器、绑定标志、构造函数参数、用于解释参数、激活属性和创建类型的授权的特定于区域性的信息。

public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
abstract member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle

参数

assemblyName
String

程序集的显示名称。 请参阅 FullName

typeName
String

请求类型的完全限定名称,包括命名空间而不是程序集,由 FullName 属性返回。

ignoreCase
Boolean

一个布尔值,指定是否执行区分大小写的搜索。

bindingAttr
BindingFlags

影响搜索 typeName 构造函数的零个或多个位标志的组合。 如果 bindingAttr 为零,则会对公共构造函数执行区分大小写的搜索。

binder
Binder

一个对象,它允许绑定、强制参数类型、调用成员以及使用反射检索 MemberInfo 对象。 如果 binder 为 null,则使用默认绑定器。

args
Object[]

要传递给构造函数的参数。 此参数数组必须以数字、顺序和键入要调用的构造函数的参数匹配。 如果首选无参数构造函数,args 必须是空数组或 null。

culture
CultureInfo

控制 args 强制 typeName 构造函数声明的正式类型的区域性特定信息。 如果 culturenull,则使用当前线程的 CultureInfo

activationAttributes
Object[]

可以参与激活的一个或多个属性的数组。 通常,包含单个 UrlAttribute 对象的数组,该对象指定激活远程对象所需的 URL。

此参数与客户端激活的对象相关。客户端激活是保留的旧技术,用于向后兼容,但不建议用于新开发。 分布式应用程序应改用 Windows Communication Foundation。

securityAttributes
Evidence

用于授权创建 typeName的信息。

返回

一个对象,它是由 typeName指定的新实例的包装器。 需要取消包装返回值才能访问实际对象。

实现

属性

例外

在卸载的应用程序域中尝试此操作。

assemblyNametypeNamenull

assemblyName 当前加载的运行时不是有效的程序集。

程序集或模块加载了两次,其中包含两个不同的证据。

找不到 assemblyName

调用方无权调用此构造函数。

找不到匹配的构造函数。

调用方无法为不继承自 MarshalByRefObject的对象提供激活属性。

-或-

securityAttributes 不是 null。 如果未启用旧 CAS 策略,应 nullsecurityAttributes

assemblyName中找不到 typeName

此实例 null

注解

有关 assemblyName格式,请参阅 AssemblyName

尝试对不是当前应用程序域的目标应用程序域调用 CreateInstance 将导致在目标应用程序域中成功加载程序集。 由于 AssemblyMarshalByRefObject,因此当此方法尝试将加载的程序集 Assembly 返回到当前应用程序域时,公共语言运行时将尝试将程序集加载到当前应用程序域中,并且加载可能会失败。 如果两个应用程序域的路径设置不同,则加载到当前应用程序域的程序集可能与首次加载的程序集不同。

另请参阅

适用于