Activator Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bevat methoden voor het lokaal of extern maken van typen objecten of het verkrijgen van verwijzingen naar bestaande externe objecten. Deze klasse kan niet worden overgenomen.
public ref class Activator abstract sealed
public ref class Activator sealed : System::Runtime::InteropServices::_Activator
public static class Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Activator : System.Runtime.InteropServices._Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Activator : System.Runtime.InteropServices._Activator
type Activator = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Activator = class
interface _Activator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Activator = class
interface _Activator
Public Class Activator
Public NotInheritable Class Activator
Implements _Activator
- Overname
-
Activator
- Kenmerken
- Implementeringen
Voorbeelden
In het volgende voorbeeld ziet u hoe u de Activator klasse gebruikt om tijdens runtime objecten dynamisch samen te stellen.
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
*/
open System
open System.Reflection
open System.Text
type SomeType() =
member _.DoSomething(x) = printfn $"100 / {x} = {100 / x}"
// Create an instance of the StringBuilder type using Activator.CreateInstance.
let o = Activator.CreateInstance typeof<StringBuilder>
// Append a string into the StringBuilder object and display the StringBuilder.
let sb = o :?> StringBuilder
sb.Append "Hello, there." |> ignore
printfn $"{sb}"
// 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
(* This code produces the following output:
Hello, there.
100 / 5 = 20
*)
Imports System.Reflection
Imports System.Text
Module Module1
Sub Main()
' Create an instance of the StringBuilder type using
' Activator.CreateInstance.
Dim o As Object = Activator.CreateInstance(GetType(StringBuilder))
' Append a string into the StringBuilder object and display the
' StringBuilder.
Dim sb As StringBuilder = CType(o, StringBuilder)
sb.Append("Hello, there.")
Console.WriteLine(sb)
' 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)
End Sub
Class SomeType
Public Sub DoSomething(ByVal x As Int32)
Console.WriteLine("100 / {0} = {1}", x, 100 \ x)
End Sub
End Class
End Module
' This code produces the following output:
'
' Hello, there.
' 100 / 5 = 20
Opmerkingen
De CreateInstance methode maakt een exemplaar van een type dat in een assembly is gedefinieerd door de constructor aan te roepen die het beste overeenkomt met de opgegeven argumenten. Als er geen argumenten zijn opgegeven, wordt de constructor die geen parameters gebruikt, namelijk de constructor zonder parameters, aangeroepen.
U moet voldoende machtigingen hebben om een constructor te zoeken en aan te roepen; anders wordt er een uitzondering gegenereerd. Standaard worden alleen openbare constructors overwogen tijdens het zoeken naar een constructor. Als er geen constructor of parameterloze constructor kan worden gevonden, wordt er een uitzondering gegenereerd.
Een binderparameter geeft een object op dat een assembly doorzoekt op een geschikte constructor. U kunt uw eigen binder en zoekcriteria opgeven. Als er geen binder is opgegeven, wordt er een standaard binder gebruikt. Zie de klassen System.Reflection.Binder en System.Reflection.BindingFlags voor meer informatie.
Een bewijsparameter is van invloed op het beveiligingsbeleid en de machtigingen voor de constructor. Zie de System.Security.Policy.Evidence klas voor meer informatie.
Een exemplaar van een type kan worden gemaakt op een lokale of externe site. Als het type extern wordt gemaakt, geeft een parameter voor het activeringskenmerk de URI van de externe site op. De aanroep voor het maken van het exemplaar kan worden doorgegeven via tussenliggende sites voordat deze de externe site bereikt. Andere activeringskenmerken kunnen de omgeving of context wijzigen waarin de aanroep op de externe en intermediaire sites wordt uitgevoerd.
Als het exemplaar lokaal wordt gemaakt, wordt er een verwijzing naar dat object geretourneerd. Als het exemplaar extern wordt gemaakt, wordt een verwijzing naar een proxy geretourneerd. Het externe object wordt gemanipuleerd via de proxy alsof het een lokaal object is.
Met de GetObject methode maakt u een proxy voor een momenteel uitgevoerd extern object, server geactiveerd bekend object of XML-webservice. U kunt het verbindingsmedium opgeven, dat wil gezegd, het kanaal. Zie de System.Runtime.Remoting.Channels.ChannelServices klas voor meer informatie.
Assembly's bevatten typedefinities. Met de CreateInstance methode maakt u een exemplaar van een type op basis van een momenteel actieve assembly. Met de CreateInstanceFrom methode wordt een exemplaar gemaakt van een bestand dat een assembly bevat. Met de CreateComInstanceFrom methode maakt u een exemplaar van een COM-object op basis van een bestand dat een assembly bevat.
Methoden
| Name | Description |
|---|---|
| CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
Hiermee maakt u een exemplaar van het COM-object waarvan de naam is opgegeven, met behulp van het benoemde assemblybestand en de parameterloze constructor. |
| CreateComInstanceFrom(String, String) |
Hiermee maakt u een exemplaar van het COM-object waarvan de naam is opgegeven, met behulp van het benoemde assemblybestand en de parameterloze constructor. |
| CreateInstance(ActivationContext, String[]) |
Hiermee maakt u een exemplaar van het type dat wordt aangewezen door het opgegeven ActivationContext object en wordt geactiveerd met de opgegeven aangepaste activeringsgegevens. |
| CreateInstance(ActivationContext) |
Hiermee maakt u een exemplaar van het type dat is aangewezen door het opgegeven ActivationContext object. |
| CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Verouderd.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(AppDomain, String, String) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en parameterloze constructor. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Verouderd.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(String, String, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven met behulp van de benoemde assembly en parameterloze constructor. |
| CreateInstance(String, String) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven met behulp van de benoemde assembly en parameterloze constructor. |
| CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, Boolean) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de parameterloze constructor van dat type. |
| CreateInstance(Type, Object[], Object[]) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, Object[]) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de parameterloze constructor van dat type. |
| CreateInstance<T>() |
Hiermee maakt u een exemplaar van het type dat is aangewezen door de opgegeven algemene typeparameter, met behulp van de parameterloze constructor. |
| CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Verouderd.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van het benoemde assemblybestand en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van het benoemde assemblybestand en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstanceFrom(AppDomain, String, String) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van het benoemde assemblybestand en de parameterloze constructor. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Verouderd.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van het benoemde assemblybestand en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van het benoemde assemblybestand en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstanceFrom(String, String, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van het benoemde assemblybestand en de parameterloze constructor. |
| CreateInstanceFrom(String, String) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van het benoemde assemblybestand en de parameterloze constructor. |
| GetObject(Type, String, Object) |
Hiermee maakt u een proxy voor het bekende object dat wordt aangegeven door het opgegeven type, de URL en de kanaalgegevens. |
| GetObject(Type, String) |
Hiermee maakt u een proxy voor het bekende object dat wordt aangegeven door het opgegeven type en de URL. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Activator.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. |
| _Activator.GetTypeInfo(UInt32, UInt32, IntPtr) |
Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen. |
| _Activator.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). |
| _Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. |