匯出 (0) 列印
全部展開
本文章是由人工翻譯。 將指標移到文章內的文字上方即可查看原文。
譯文
原文

Activator 類別

包含本機或遠端建立物件型別的方法,或者取得對現有遠端物件的參考。 此類別無法被繼承。

命名空間:  System
組件:  mscorlib (在 mscorlib.dll 中)

[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public sealed class Activator : _Activator

Activator 型別會公開下列成員。

  名稱說明
公用方法靜態成員CreateComInstanceFrom(String, String)使用具名組件檔案和最符合指定參數的建構函式,建立具有指定名稱的 COM 物件的執行個體。
公用方法靜態成員CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)使用具名組件檔案和預設建構函式 (Constructor),建立其名稱已指定之 COM 物件的執行個體。
公用方法靜態成員CreateInstance(ActivationContext)根據指定 ActivationContext 物件的指示,建立型別的執行個體。
公用方法靜態成員受 XNA Framework 支援b4wc81dc.PortableClassLibrary(zh-tw,VS.100).gifCreateInstance(Type)使用指定之型別的預設建構函式,建立該型別的執行個體。
公用方法靜態成員CreateInstance(ActivationContext, String[])建立型別的執行個體,此型別是由指定的 ActivationContext 物件所指派,並且是以指定的自訂啟動資料所啟動。
公用方法靜態成員CreateInstance(String, String)使用具名組件和預設建構函式,建立其名稱已指定之型別的執行個體。
公用方法靜態成員CreateInstance(Type, Boolean)使用指定之型別的預設建構函式,建立該型別的執行個體。
公用方法靜態成員b4wc81dc.PortableClassLibrary(zh-tw,VS.100).gifCreateInstance(Type, Object[])使用最符合指定參數的建構函式,建立指定型別的執行個體。
公用方法靜態成員CreateInstance(AppDomain, String, String)使用具名組件和預設建構函式,建立其名稱已在指定遠端網域中指定之型別的執行個體。
公用方法靜態成員CreateInstance(String, String, Object[])使用具名組件和預設建構函式,建立其名稱已指定之型別的執行個體。
公用方法靜態成員CreateInstance(Type, Object[], Object[])使用最符合指定參數的建構函式,建立指定型別的執行個體。
公用方法靜態成員CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)使用最符合指定參數的建構函式,建立指定型別的執行個體。
公用方法靜態成員CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])使用最符合指定參數的建構函式,建立指定型別的執行個體。
公用方法靜態成員CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])使用具名組件和最符合指定參數的建構函式,建立具有指定名稱的型別執行個體。
公用方法靜態成員CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])使用最符合指定參數的具名組件和建構函式,建立其名稱已在指定遠端網域中指定之型別的執行個體。
公用方法靜態成員CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 已過時。使用具名組件和最符合指定參數的建構函式,建立具有指定名稱的型別執行個體。
公用方法靜態成員CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 已過時。使用最符合指定參數的具名組件和建構函式,建立其名稱已在指定遠端網域中指定之型別的執行個體。
公用方法靜態成員受 XNA Framework 支援b4wc81dc.PortableClassLibrary(zh-tw,VS.100).gifCreateInstance<T>()使用無參數建構函式,建立由指定之泛型型別參數所指定型別的執行個體。
公用方法靜態成員CreateInstanceFrom(String, String)使用具名組件檔案和預設建構函式,建立具有指定名稱的型別執行個體。
公用方法靜態成員CreateInstanceFrom(AppDomain, String, String)使用具名組件檔案和預設建構函式,建立其名稱已在指定遠端網域中指定之型別的執行個體。
公用方法靜態成員CreateInstanceFrom(String, String, Object[])使用具名組件檔案和預設建構函式,建立具有指定名稱的型別執行個體。
公用方法靜態成員CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])使用具名組件檔案和最符合指定參數的建構函式,建立具有指定名稱的型別的執行個體。
公用方法靜態成員CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])使用最符合指定參數的具名組件檔案和建構函式,建立其名稱已在指定遠端網域中指定之型別的執行個體。
公用方法靜態成員CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 已過時。使用具名組件檔案和最符合指定參數的建構函式,建立具有指定名稱的型別的執行個體。
公用方法靜態成員CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 已過時。使用最符合指定參數的具名組件檔案和建構函式,建立其名稱已在指定遠端網域中指定之型別的執行個體。
公用方法受 XNA Framework 支援Equals(Object)判斷指定的 Object 和目前的 Object 是否相等。 (繼承自 Object)。
受保護的方法受 XNA Framework 支援Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法受 XNA Framework 支援GetHashCode做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法靜態成員GetObject(Type, String)為指定型別和 URL 所指定的已知物件建立 Proxy。
公用方法靜態成員GetObject(Type, String, Object)為指定型別、URL 和通道資料所指定的已知物件建立 Proxy。
公用方法受 XNA Framework 支援GetType取得目前執行個體的 Type (繼承自 Object)。
受保護的方法受 XNA Framework 支援MemberwiseClone建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
公用方法受 XNA Framework 支援ToString傳回表示目前物件的字串。 (繼承自 Object)。
回頁首

  名稱說明
明確介面實作私用方法_Activator.GetIDsOfNames將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。
明確介面實作私用方法_Activator.GetTypeInfo擷取物件的型別資訊,可以用來取得介面的型別資訊。
明確介面實作私用方法_Activator.GetTypeInfoCount擷取物件提供的型別資訊介面數目 (0 或 1)。
明確介面實作私用方法_Activator.Invoke提供物件所公開的屬性和方法的存取權。
回頁首

CreateInstance 方法會叫用最符合指定引數的建構函式,建立在組件中定義的型別執行個體。 如果未指定引數,則會叫用不接受參數的建構函式 (亦即預設的建構函式)。

您必須有足夠的使用權限可搜尋及呼叫建構函式,否則會擲回例外狀況。 根據預設,在搜尋建構函式期間只會考慮公用 (Public) 建構函式。 如果找不到建構函式或者沒有預設建構函式,則會擲回例外狀況。

繫結器 (Binder) 參數會指定在組件中搜尋適當建構函式的物件。 您可以指定自己的繫結器 (Binder) 及搜尋準則。 如果沒有指定繫結器,則會使用預設繫結器。 如需詳細資訊,請參閱 System.Reflection.BinderSystem.Reflection.BindingFlags 類別。

辨識項參數會影響建構函式的安全性原則和使用權限。 如需詳細資訊,請參閱 System.Security.Policy.Evidence 類別。

型別的執行個體可以在本機或遠端站台建立。 如果型別在遠端建立,則啟動屬性參數會指定遠端站台的 URI。 建立執行個體的呼叫可能會在到達遠端站台前先經過居間站台。 其他啟動屬性可以修改呼叫在遠端或居間站台運作的所在環境或內容。

如果是執行個體在本機建立,則會傳回對該物件的參考。 如果是執行個體在遠端建立,則會傳回對 Proxy 的參考。 遠端物件是經由 Proxy 加以管理,就好像是本機物件一樣。

GetObject 方法會為目前正在執行的遠端物件、伺服器啟動的已知物件或 XML Web Service 建立 Proxy。 您可以指定連接媒介 (也就是通道)。 如需詳細資訊,請參閱 System.Runtime.Remoting.Channels.ChannelServices 類別。

組件包含型別定義。 CreateInstance 方法會從目前執行中的組件建立型別的執行個體。 CreateInstanceFrom 方法會從包含組件的檔案建立執行個體。 CreateComInstanceFrom 方法會從包含組件的檔案建立 COM 物件的執行個體。

下列範例說明如何使用 Activator 類別,在執行階段以動態方式建構物件。


using System;
using System.Reflection;
using System.Text;

public class SomeType
{
    public void DoSomething(int x)
    {
        Console.WriteLine("100 / {0} = {1}", x, 100 / x);
    }
}

public class Example
{
    static void Main()
    {
        // Create an instance of the StringBuilder type using 
        // Activator.CreateInstance.
        Object o = Activator.CreateInstance(typeof(StringBuilder));

        // Append a string into the StringBuilder object and display the 
        // StringBuilder.
        StringBuilder sb = (StringBuilder) o;
        sb.Append("Hello, there.");
        Console.WriteLine(sb);

        // 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);
    }
}

/* This code produces the following output:

Hello, there.
100 / 5 = 20
 */


.NET Framework

支援版本:4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

支援版本:4、3.5 SP1

支援版本:

Windows 7, Windows Vista SP1 (含) 以後版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (不支援伺服器核心), Windows Server 2008 R2 (SP1 (含) 以後版本支援伺服器核心), Windows Server 2003 SP2

.NET Framework 並不支援各種平台的所有版本。如需支援的版本的清單,請參閱.NET Framework 系統需求

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

社群新增項目

新增
顯示:
© 2014 Microsoft