Activator.CreateComInstanceFrom Metoda

Definicja

Tworzy wystąpienie obiektu COM, którego nazwa jest określona.

Przeciążenia

CreateComInstanceFrom(String, String)

Tworzy wystąpienie obiektu COM, którego nazwa jest określona, przy użyciu nazwanego pliku zestawu i konstruktora bez parametrów.

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Tworzy wystąpienie obiektu COM, którego nazwa jest określona, przy użyciu nazwanego pliku zestawu i konstruktora bez parametrów.

CreateComInstanceFrom(String, String)

Tworzy wystąpienie obiektu COM, którego nazwa jest określona, przy użyciu nazwanego pliku zestawu i konstruktora bez parametrów.

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

Parametry

assemblyName
String

Nazwa pliku zawierającego zestaw, w którym poszukiwany jest typ o nazwie typeName .

typeName
String

Nazwa typu do utworzenia wystąpienia.

Zwraca

Uchwyt, który musi być rozpasany, aby uzyskać dostęp do nowo utworzonego obiektu lub null na Nullable<T> przykład.

Wyjątki

typeName lub assemblyName to null.

Nie można utworzyć wystąpienia za pośrednictwem modelu COM.

-lub-

typename nie znaleziono w pliku assemblyName.

Nie znaleziono pasującego konstruktora.

assemblyName nie można odnaleźć lub moduł, który próbujesz załadować, nie określa rozszerzenia nazwy pliku.

Nie można utworzyć wystąpienia klasy abstrakcyjnej.

-lub-

Ten element członkowski został wywołany z użyciem mechanizmu opóźnionego wiązania.

Obiekt wywołujący nie może podać atrybutów aktywacji dla obiektu, który nie dziedziczy z MarshalByRefObjectklasy .

assemblyName jest pustym ciągiem ("").

Uwagi

ObjectHandle.Unwrap Użyj metody , aby odpakować wartość zwracaną.

Atrybut System.Runtime.InteropServices.ComVisibleAttribute o wartości true musi być stosowany jawnie lub domyślnie do typu COM, TypeLoadException aby CreateComInstanceFrom metoda mogła utworzyć wystąpienie tego typu. W przeciwnym razie jest zgłaszany.

Aby uzyskać informacje o innych wyjątkach, które mogą być zgłaszane przez metody wywoływane, zobacz sekcję Assembly.LoadFrom Wyjątki metod i CreateInstance .

Uwaga

Począwszy od .NET Framework 2.0, ta metoda może służyć do tworzenia typów niepublicowych, jeśli obiekt wywołujący otrzymał ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess flagę, a zestaw dotacji zawierający typy niepublicowe jest ograniczony do zestawu dotacji obiektu wywołującego lub do jego podzbioru. (Zobacz Zagadnienia dotyczące zabezpieczeń do odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa .NET Framework 3.5 lub nowszej.

Dotyczy

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Tworzy wystąpienie obiektu COM, którego nazwa jest określona, przy użyciu nazwanego pliku zestawu i konstruktora bez parametrów.

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

Parametry

assemblyName
String

Nazwa pliku zawierającego zestaw, w którym poszukiwany jest typ o nazwie typeName .

typeName
String

Nazwa typu do utworzenia wystąpienia.

hashValue
Byte[]

Wartość obliczonego kodu skrótu.

hashAlgorithm
AssemblyHashAlgorithm

Algorytm skrótu używany do tworzenia skrótów plików i generowania silnej nazwy.

Zwraca

Uchwyt, który musi być rozpasany, aby uzyskać dostęp do nowo utworzonego obiektu lub null na Nullable<T> przykład.

Wyjątki

typeName lub assemblyName to null.

assemblyName jest pustym ciągiem ("").

Zestaw lub moduł został załadowany dwukrotnie z dwoma różnymi dowodami.

-lub-

assemblyName jest dłuższa niż długość maksymalna zdefiniowana przez system.

assemblyName nie można odnaleźć lub moduł, który próbujesz załadować, nie określa rozszerzenia nazwy pliku.

assemblyName znaleziono plik , ale nie można go załadować.

assemblyName nie jest prawidłowym zestawem.

Baza kodu, która nie zaczyna się od "file://" została określona bez wymaganego WebPermissionelementu .

Nie można utworzyć wystąpienia za pośrednictwem modelu COM.

-lub-

typename nie znaleziono w pliku assemblyName.

Nie znaleziono pasującego konstruktora.

Nie można utworzyć wystąpienia klasy abstrakcyjnej.

-lub-

Ten element członkowski został wywołany z użyciem mechanizmu opóźnionego wiązania.

Obiekt wywołujący nie może podać atrybutów aktywacji dla obiektu, który nie dziedziczy z MarshalByRefObjectklasy .

Uwagi

ObjectHandle.Unwrap Użyj metody , aby odpakować wartość zwracaną.

Atrybut System.Runtime.InteropServices.ComVisibleAttribute o wartości true musi być stosowany jawnie lub domyślnie do typu COM, TypeLoadException aby CreateComInstanceFrom metoda mogła utworzyć wystąpienie tego typu. W przeciwnym razie jest zgłaszany.

Aby uzyskać informacje o innych wyjątkach, które mogą być zgłaszane przez metody wywoływane, zobacz sekcję Assembly.LoadFrom Wyjątki metod i CreateInstance .

Uwaga

Począwszy od .NET Framework 2.0, ta metoda może służyć do tworzenia typów niepublicowych, jeśli obiekt wywołujący otrzymał ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess flagę, a zestaw dotacji zawierający typy niepublicowe jest ograniczony do zestawu dotacji obiektu wywołującego lub do jego podzbioru. (Zobacz Zagadnienia dotyczące zabezpieczeń do odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa .NET Framework 3.5 lub nowszej.

Dotyczy