Activator.CreateInstanceFrom 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用具名元件檔和最符合指定參數的建構函式,建立指定名稱的類型實例。
多載
CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
已淘汰.
使用具名元件檔和最符合指定參數的建構函式,建立指定遠端網域中指定名稱之型別的實例。 |
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
已淘汰.
使用具名元件檔和最符合指定參數的建構函式,建立指定名稱的類型實例。 |
CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
使用具名元件檔和最符合指定參數的建構函式,建立指定遠端網域中指定名稱之型別的實例。 |
CreateInstanceFrom(String, String, Object[]) |
使用具名元件檔案和無參數建構函式,建立指定名稱之型別的實例。 |
CreateInstanceFrom(AppDomain, String, String) |
使用具名元件檔案和無參數建構函式,建立在指定遠端網域中指定名稱之型別的實例。 |
CreateInstanceFrom(String, String) |
使用具名元件檔案和無參數建構函式,建立指定名稱之型別的實例。 |
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
使用具名元件檔和最符合指定參數的建構函式,建立指定名稱的類型實例。 |
CreateInstanceFrom(AppDomain, 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 CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
使用具名元件檔和最符合指定參數的建構函式,建立指定遠端網域中指定名稱之型別的實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(AppDomain ^ domain, System::String ^ assemblyFile, 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 static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, 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 CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, 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);
static member CreateInstanceFrom : AppDomain * 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 CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
[<System.Security.SecurityCritical>]
static member CreateInstanceFrom : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (domain As AppDomain, assemblyFile 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
參數
- domain
- AppDomain
建立名為 typeName
類型的遠端網域。
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
- ignoreCase
- Boolean
true
指定搜尋 typeName
不區分大小寫;false
指定搜尋區分大小寫。
- bindingAttr
- BindingFlags
零個或多個位旗標的組合,會影響搜尋 typeName
建構函式。 如果 bindingAttr
為零,則會對公用建構函式進行區分大小寫的搜尋。
- binder
- Binder
物件,使用 bindingAttr
和 args
來搜尋和識別 typeName
建構函式。 如果 binder
null
,則會使用預設系結器。
- args
- Object[]
以數位、順序和輸入要叫用之建構函式參數的自變數陣列。 如果 args
是空陣列或 null
,則會叫用不採用任何參數的建構函式(無參數建構函式)。
- culture
- CultureInfo
針對 typeName
建構函式所宣告之 args
強制型別的文化特性特定資訊。 如果 culture
null
,則會使用目前線程的 CultureInfo。
- activationAttributes
- Object[]
一或多個可以參與啟用的屬性陣列。 這通常是包含單一 UrlAttribute 對象的陣列,指定啟動遠端物件所需的URL。
此參數與客戶端啟動的物件相關。 用戶端啟用是保留的舊版技術,可保持回溯相容性,但不建議用於新的開發。 分散式應用程式應該改用 Windows Communication Foundation。
- securityAttributes
- Evidence
用來做出安全策略決策並授與程式代碼許可權的資訊。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
- 屬性
例外狀況
domain
或 typeName
null
。
找不到相符的建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
呼叫端確實具有必要的 FileIOPermission。
activationAttributes
不是空陣列,而且所建立的類型不會衍生自 MarshalByRefObject。
assemblyFile
不是有效的元件。
-或-
Common Language Runtime (CLR) 2.0 版或更新版本目前已載入,且已針對比目前載入的版本更新版本的 CLR 編譯 assemblyFile
。 請注意,.NET Framework 2.0、3.0 和 3.5 版都使用 CLR 2.0 版。
備註
當主機需要在具有限制安全性許可權的應用程式域中執行程式代碼時,請使用 CreateInstanceFrom。
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
適用於
CreateInstanceFrom(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 CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
使用具名元件檔和最符合指定參數的建構函式,建立指定名稱的類型實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, 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 ^ securityInfo);
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
[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 CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstanceFrom : 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 CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (assemblyFile As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle
參數
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
- ignoreCase
- Boolean
true
指定搜尋 typeName
不區分大小寫;false
指定搜尋區分大小寫。
- bindingAttr
- BindingFlags
零個或多個位旗標的組合,會影響搜尋 typeName
建構函式。 如果 bindingAttr
為零,則會對公用建構函式進行區分大小寫的搜尋。
- binder
- Binder
物件,使用 bindingAttr
和 args
來搜尋和識別 typeName
建構函式。 如果 binder
null
,則會使用預設系結器。
- args
- Object[]
以數位、順序和輸入要叫用之建構函式參數的自變數陣列。 如果 args
是空陣列或 null
,則會叫用不採用任何參數的建構函式(無參數建構函式)。
- culture
- CultureInfo
針對 typeName
建構函式所宣告之 args
強制型別的文化特性特定資訊。 如果 culture
null
,則會使用目前線程的 CultureInfo。
- activationAttributes
- Object[]
一或多個可以參與啟用的屬性陣列。 這通常是包含單一 UrlAttribute 對象的陣列,指定啟動遠端物件所需的URL。
此參數與客戶端啟動的物件相關。 用戶端啟用是保留的舊版技術,可保持回溯相容性,但不建議用於新的開發。 分散式應用程式應該改用 Windows Communication Foundation。
- securityInfo
- Evidence
用來做出安全策略決策並授與程式代碼許可權的資訊。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
- 屬性
例外狀況
typeName
null
。
找不到相符的建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
呼叫端沒有必要的 FileIOPermission。
activationAttributes
不是空陣列,而且所建立的類型不會衍生自 MarshalByRefObject。
assemblyFile
不是有效的元件。
-或-
Common Language Runtime (CLR) 2.0 版或更新版本目前已載入,且已針對比目前載入的版本更新版本的 CLR 編譯 assemblyFile
。 請注意,.NET Framework 2.0、3.0 和 3.5 版都使用 CLR 2.0 版。
備註
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
適用於
CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
使用具名元件檔和最符合指定參數的建構函式,建立指定遠端網域中指定名稱之型別的實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(AppDomain ^ domain, System::String ^ assemblyFile, 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.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
[<System.Security.SecurityCritical>]
static member CreateInstanceFrom : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (domain As AppDomain, assemblyFile 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
參數
- domain
- AppDomain
建立名為 typeName
類型的遠端網域。
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
- ignoreCase
- Boolean
true
指定搜尋 typeName
不區分大小寫;false
指定搜尋區分大小寫。
- bindingAttr
- BindingFlags
零個或多個位旗標的組合,會影響搜尋 typeName
建構函式。 如果 bindingAttr
為零,則會對公用建構函式進行區分大小寫的搜尋。
- binder
- Binder
物件,使用 bindingAttr
和 args
來搜尋和識別 typeName
建構函式。 如果 binder
null
,則會使用預設系結器。
- args
- Object[]
以數位、順序和輸入要叫用之建構函式參數的自變數陣列。 如果 args
是空陣列或 null
,則會叫用不採用任何參數的建構函式(無參數建構函式)。
- culture
- CultureInfo
針對 typeName
建構函式所宣告之 args
強制型別的文化特性特定資訊。 如果 culture
null
,則會使用目前線程的 CultureInfo。
- activationAttributes
- Object[]
一或多個可以參與啟用的屬性陣列。 這通常是包含單一 UrlAttribute 對象的陣列,指定啟動遠端物件所需的URL。
此參數與客戶端啟動的物件相關。 用戶端啟用是保留的舊版技術,可保持回溯相容性,但不建議用於新的開發。 分散式應用程式應該改用 Windows Communication Foundation。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
- 屬性
例外狀況
domain
或 typeName
null
。
找不到相符的建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
呼叫端確實具有必要的 FileIOPermission。
activationAttributes
不是空陣列,而且所建立的類型不會衍生自 MarshalByRefObject。
assemblyFile
不是有效的元件。
-或-
assemblyFile
已針對較目前載入的版本更新的 Common Language Runtime 版本進行編譯。
備註
當主機需要在具有限制安全性許可權的應用程式域中執行程式代碼時,請使用 CreateInstanceFrom。
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需可由叫用方法擲回之其他例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況區段。
適用於
CreateInstanceFrom(String, String, Object[])
- 來源:
- Activator.cs
- 來源:
- Activator.cs
- 來源:
- Activator.cs
使用具名元件檔案和無參數建構函式,建立指定名稱之型別的實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstanceFrom (string assemblyFile, string typeName, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, object[] activationAttributes);
static member CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (assemblyFile As String, typeName As String, activationAttributes As Object()) As ObjectHandle
參數
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
- activationAttributes
- Object[]
一或多個可以參與啟用的屬性陣列。 這通常是包含單一 UrlAttribute 對象的陣列,指定啟動遠端物件所需的URL。
此參數與客戶端啟動的物件相關。 用戶端啟用是保留的舊版技術,可保持回溯相容性,但不建議用於新的開發。 分散式應用程式應該改用 Windows Communication Foundation。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
例外狀況
typeName
null
。
找不到相符的公用建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
activationAttributes
不是空陣列,而且所建立的類型不會衍生自 MarshalByRefObject。
呼叫端確實具有必要的 FileIOPermission。
assemblyFile
不是有效的元件。
-或-
Common Language Runtime (CLR) 2.0 版或更新版本目前已載入,且已針對比目前載入的版本更新版本的 CLR 編譯 assemblyFile
。 請注意,.NET Framework 2.0、3.0 和 3.5 版都使用 CLR 2.0 版。
備註
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
適用於
CreateInstanceFrom(AppDomain, String, String)
使用具名元件檔案和無參數建構函式,建立在指定遠端網域中指定名稱之型別的實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(AppDomain ^ domain, System::String ^ assemblyFile, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, string typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, string typeName);
static member CreateInstanceFrom : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
[<System.Security.SecurityCritical>]
static member CreateInstanceFrom : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (domain As AppDomain, assemblyFile As String, typeName As String) As ObjectHandle
參數
- domain
- AppDomain
建立名為 typeName
類型的遠端網域。
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
- 屬性
例外狀況
domain
或 typeName
null
。
找不到相符的公用建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
呼叫端確實具有必要的 FileIOPermission。
assemblyFile
不是有效的元件。
-或-
Common Language Runtime (CLR) 2.0 版或更新版本目前已載入,且已針對比目前載入的版本更新版本的 CLR 編譯 assemblyFile
。 請注意,.NET Framework 2.0、3.0 和 3.5 版都使用 CLR 2.0 版。
備註
當主機需要在具有限制安全性許可權的應用程式域中執行程式代碼時,請使用 CreateInstanceFrom。
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
適用於
CreateInstanceFrom(String, String)
- 來源:
- Activator.cs
- 來源:
- Activator.cs
- 來源:
- Activator.cs
使用具名元件檔案和無參數建構函式,建立指定名稱之型別的實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstanceFrom (string assemblyFile, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName);
static member CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (assemblyFile As String, typeName As String) As ObjectHandle
參數
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
例外狀況
typeName
null
。
找不到相符的公用建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
呼叫端確實具有必要的 FileIOPermission。
assemblyFile
不是有效的元件。
-或-
Common Language Runtime (CLR) 2.0 版或更新版本目前已載入,且已針對比目前載入的版本更新版本的 CLR 編譯 assemblyFile
。 請注意,.NET Framework 2.0、3.0 和 3.5 版都使用 CLR 2.0 版。
範例
下列程式代碼範例示範如何呼叫 CreateInstanceFrom 方法。 此程式代碼範例是提供給 Activator 類別之較大範例的一部分。
// Create an instance of the SomeType class that is defined in this
// assembly.
System::Runtime::Remoting::ObjectHandle^ oh =
Activator::CreateInstanceFrom(Assembly::GetEntryAssembly()->CodeBase,
SomeType::typeid->FullName);
// Call an instance method defined by the SomeType type using this object.
SomeType^ st = (SomeType^) oh->Unwrap();
st->DoSomething(5);
// Create an instance of the SomeType class that is defined in this
// assembly.
System.Runtime.Remoting.ObjectHandle oh =
Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase,
typeof(SomeType).FullName);
// Call an instance method defined by the SomeType type using this object.
SomeType st = (SomeType) oh.Unwrap();
st.DoSomething(5);
// Create an instance of the SomeType class that is defined in this assembly.
let oh =
Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().Location, typeof<SomeType>.FullName)
// Call an instance method defined by the SomeType type using this object.
let st = oh.Unwrap() :?> SomeType
st.DoSomething 5
' Create an instance of the SomeType class that is defined in this assembly.
Dim oh As System.Runtime.Remoting.ObjectHandle = _
Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase, _
GetType(SomeType).FullName)
' Call an instance method defined by the SomeType type using this object.
Dim st As SomeType = CType(oh.Unwrap(), SomeType)
st.DoSomething(5)
備註
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。
適用於
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- 來源:
- Activator.cs
- 來源:
- Activator.cs
- 來源:
- Activator.cs
使用具名元件檔和最符合指定參數的建構函式,建立指定名稱的類型實例。
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, 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 static System.Runtime.Remoting.ObjectHandle? CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstanceFrom (assemblyFile 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
參數
- assemblyFile
- String
包含名為 typeName
類型之元件的檔名。
- typeName
- String
要建立 實例之型別的名稱。
- ignoreCase
- Boolean
true
指定搜尋 typeName
不區分大小寫;false
指定搜尋區分大小寫。
- bindingAttr
- BindingFlags
零個或多個位旗標的組合,會影響搜尋 typeName
建構函式。 如果 bindingAttr
為零,則會對公用建構函式進行區分大小寫的搜尋。
- binder
- Binder
物件,使用 bindingAttr
和 args
來搜尋和識別 typeName
建構函式。 如果 binder
null
,則會使用預設系結器。
- args
- Object[]
以數位、順序和輸入要叫用之建構函式參數的自變數陣列。 如果 args
是空陣列或 null
,則會叫用不採用任何參數的建構函式(無參數建構函式)。
- culture
- CultureInfo
針對 typeName
建構函式所宣告之 args
強制型別的文化特性特定資訊。 如果 culture
null
,則會使用目前線程的 CultureInfo。
- activationAttributes
- Object[]
一或多個可以參與啟用的屬性陣列。 這通常是包含單一 UrlAttribute 對象的陣列,指定啟動遠端物件所需的URL。
此參數與客戶端啟動的物件相關。 用戶端啟用是保留的舊版技術,可保持回溯相容性,但不建議用於新的開發。 分散式應用程式應該改用 Windows Communication Foundation。
傳回
必須解除包裝的句柄,才能存取新建立的物件,或 Nullable<T> 實例的 null
。
例外狀況
typeName
null
。
找不到相符的建構函式。
assemblyFile
中找不到 typeName
。
找不到 assemblyFile
。
呼叫端沒有呼叫這個建構函式的許可權。
無法建立抽象類的實例,或使用晚期綁定機制叫用這個成員。
透過反映叫用的建構函式會擲回例外狀況。
呼叫端沒有必要的 FileIOPermission。
activationAttributes
不是空陣列,而且所建立的類型不會衍生自 MarshalByRefObject。
assemblyFile
不是有效的元件。
-或-
Common Language Runtime (CLR) 2.0 版或更新版本目前已載入,且已針對比目前載入的版本更新版本的 CLR 編譯 assemblyFile
。 請注意,.NET Framework 2.0、3.0 和 3.5 版都使用 CLR 2.0 版。
備註
使用 ObjectHandle.Unwrap 方法來解除包裝傳回值。
如需其他可由叫用方法擲回的例外狀況的相關信息,請參閱 Assembly.LoadFrom 和 CreateInstance 方法的例外狀況一節。