Activator.CreateComInstanceFrom 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立指定名稱之 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
。
例外狀況
typeName
或 assemblyName
null
。
找不到相符的建構函式。
找不到 assemblyName
,或您嘗試載入的模組未指定擴展名。
呼叫端無法為未繼承自 MarshalByRefObject的物件提供啟用屬性。
assemblyName
是空字串 (“)。
備註
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
具有 true
值的 System.Runtime.InteropServices.ComVisibleAttribute 屬性必須明確或預設套用至 COM 類型,讓 CreateComInstanceFrom 方法可以建立該類型的實例;否則會擲回 TypeLoadException。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
注意
從 .NET Framework 2.0 開始,如果呼叫端已被授與 ReflectionPermissionFlag.RestrictedMemberAccess 旗標 ReflectionPermission,而且包含非公用類型的元件授與集僅限於呼叫者的授與集或子集,則這個方法可以用來建立非公用類型。 (請參閱反映
適用於
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
。
例外狀況
typeName
或 assemblyName
null
。
assemblyName
是空字串 (“)。
找不到 assemblyName
,或您嘗試載入的模組未指定擴展名。
找到 assemblyName
但無法載入。
assemblyName
不是有效的元件。
未指定以 「file://」 開頭的程式代碼基底,但不需要 WebPermission
。
找不到相符的建構函式。
呼叫端無法為未繼承自 MarshalByRefObject的物件提供啟用屬性。
備註
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
具有 true
值的 System.Runtime.InteropServices.ComVisibleAttribute 屬性必須明確或預設套用至 COM 類型,讓 CreateComInstanceFrom 方法可以建立該類型的實例;否則會擲回 TypeLoadException。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
注意
從 .NET Framework 2.0 開始,如果呼叫端已被授與 ReflectionPermissionFlag.RestrictedMemberAccess 旗標 ReflectionPermission,而且包含非公用類型的元件授與集僅限於呼叫者的授與集或子集,則這個方法可以用來建立非公用類型。 (請參閱反映