共用方式為


Activator.CreateComInstanceFrom 方法

定義

建立指定名稱之 COM 物件的實例。

多載

CreateComInstanceFrom(String, String)

使用具名元件檔案和無參數建構函式,建立指定名稱的 COM 物件的實例。

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

使用具名元件檔案和無參數建構函式,建立指定名稱的 COM 物件的實例。

CreateComInstanceFrom(String, String)

使用具名元件檔案和無參數建構函式,建立指定名稱的 COM 物件的實例。

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName);
static member CreateComInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateComInstanceFrom (assemblyName As String, typeName As String) As ObjectHandle

參數

assemblyName
String

包含名為 typeName 類型之元件的檔名。

typeName
String

要建立 實例之型別的名稱。

傳回

必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null

例外狀況

typeNameassemblyNamenull

無法透過 COM 建立實例。

-或-

assemblyName中找不到 typeName

找不到相符的建構函式。

找不到 assemblyName,或您嘗試載入的模組未指定擴展名。

無法建立抽象類的實例。

-或-

這個成員是使用晚期綁定機制叫用的。

呼叫端無法為未繼承自 MarshalByRefObject的物件提供啟用屬性。

assemblyName 是空字串 (“)。

備註

使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。

具有 true 值的 System.Runtime.InteropServices.ComVisibleAttribute 屬性必須明確或預設套用至 COM 類型,讓 CreateComInstanceFrom 方法可以建立該類型的實例;否則會擲回 TypeLoadException

如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFromCreateInstance 方法的例外狀況一節。

注意

從 .NET Framework 2.0 開始,如果呼叫端已被授與 ReflectionPermissionFlag.RestrictedMemberAccess 旗標 ReflectionPermission,而且包含非公用類型的元件授與集僅限於呼叫者的授與集或子集,則這個方法可以用來建立非公用類型。 (請參閱反映安全性考慮。若要使用這項功能,您的應用程式應以 .NET Framework 3.5 或更新版本為目標。

適用於

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

使用具名元件檔案和無參數建構函式,建立指定名稱的 COM 物件的實例。

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member CreateComInstanceFrom : string * string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateComInstanceFrom (assemblyName As String, typeName As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As ObjectHandle

參數

assemblyName
String

包含名為 typeName 類型之元件的檔名。

typeName
String

要建立 實例之型別的名稱。

hashValue
Byte[]

計算哈希碼的值。

hashAlgorithm
AssemblyHashAlgorithm

用於哈希檔案和產生強名稱的哈希演算法。

傳回

必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null

例外狀況

typeNameassemblyNamenull

assemblyName 是空字串 (“)。

元件或模組已載入兩次,並具有兩個不同的辨識項。

-或-

assemblyName 長度超過系統定義的最大長度。

找不到 assemblyName,或您嘗試載入的模組未指定擴展名。

找到 assemblyName 但無法載入。

assemblyName 不是有效的元件。

未指定以 「file://」 開頭的程式代碼基底,但不需要 WebPermission

無法透過 COM 建立實例。

-或-

assemblyName中找不到 typeName

找不到相符的建構函式。

無法建立抽象類的實例。

-或-

這個成員是使用晚期綁定機制叫用的。

呼叫端無法為未繼承自 MarshalByRefObject的物件提供啟用屬性。

備註

使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。

具有 true 值的 System.Runtime.InteropServices.ComVisibleAttribute 屬性必須明確或預設套用至 COM 類型,讓 CreateComInstanceFrom 方法可以建立該類型的實例;否則會擲回 TypeLoadException

如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFromCreateInstance 方法的例外狀況一節。

注意

從 .NET Framework 2.0 開始,如果呼叫端已被授與 ReflectionPermissionFlag.RestrictedMemberAccess 旗標 ReflectionPermission,而且包含非公用類型的元件授與集僅限於呼叫者的授與集或子集,則這個方法可以用來建立非公用類型。 (請參閱反映安全性考慮。若要使用這項功能,您的應用程式應以 .NET Framework 3.5 或更新版本為目標。

適用於