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

要建立執行個體的型別名稱。

傳回

必須解除包裝才能存取新建立之物件的控制碼,或 null 實例 Nullable<T> 的控制碼。

例外狀況

typeNameassemblyNamenull

無法透過 COM 建立執行個體。

-或-

assemblyName 中找不到 typename

找不到相符的建構函式。

找不到 assemblyName,或您想載入的模組並未指定檔案的副檔名。

無法建立抽象類別的執行個體。

-或-

這個成員曾被晚期繫結機制叫用過。

呼叫者無法提供非繼承自 MarshalByRefObject 之物件的啟動屬性。

assemblyName 為空字串 ("")。

備註

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

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

如需可透過叫用方法擲回之其他例外狀況的相關資訊,請參閱 和 CreateInstance 方法的 Assembly.LoadFrom Exceptions 一節。

注意

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

適用於

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

雜湊演算法,用於雜湊檔案並產生強式名稱 (Strong Name)。

傳回

必須解除包裝才能存取新建立之物件的控制碼,或 null 實例 Nullable<T> 的控制碼。

例外狀況

typeNameassemblyNamenull

assemblyName 為空字串 ("")。

使用兩個不同的辨識項載入組件或模組兩次。

-或-

assemblyName 超過系統定義的長度上限。

找不到 assemblyName,或您想載入的模組並未指定檔案的副檔名。

找到 assemblyName,但無法載入。

assemblyName 不是有效的組件。

指定了並非以 "file://" 開頭的程式碼基底,且沒有必要的 WebPermission

無法透過 COM 建立執行個體。

-或-

assemblyName 中找不到 typename

找不到相符的建構函式。

無法建立抽象類別的執行個體。

-或-

這個成員曾被晚期繫結機制叫用過。

呼叫者無法提供非繼承自 MarshalByRefObject 之物件的啟動屬性。

備註

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

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

如需可透過叫用方法擲回之其他例外狀況的相關資訊,請參閱 和 CreateInstance 方法的 Assembly.LoadFrom Exceptions 一節。

注意

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

適用於