Udostępnij za pośrednictwem


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 zostać rozpasany, aby uzyskać dostęp do nowo utworzonego obiektu lub null dla wystąpień Nullable<T>.

Wyjątki

typeName lub assemblyName jest null.

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

-lub-

nie można odnaleźć typeName w 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 mechanizmem późnego powiązania.

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

assemblyName jest pustym ciągiem ("").

Uwagi

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

Atrybut System.Runtime.InteropServices.ComVisibleAttribute z wartością true należy zastosować jawnie lub domyślnie do typu COM, aby metoda CreateComInstanceFrom mogła utworzyć wystąpienie tego typu; w przeciwnym razie TypeLoadException jest zgłaszany.

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

Nuta

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

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 zostać rozpasany, aby uzyskać dostęp do nowo utworzonego obiektu lub null dla wystąpień Nullable<T>.

Wyjątki

typeName lub assemblyName jest 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ż maksymalna długość zdefiniowana przez system.

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

assemblyName jest znaleziony, ale nie można go załadować.

assemblyName nie jest prawidłowym zestawem.

Określono bazę kodu, która nie rozpoczyna się od "file://" bez wymaganego WebPermission.

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

-lub-

nie można odnaleźć typeName w assemblyName.

Nie znaleziono pasującego konstruktora.

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

-lub-

Ten element członkowski został wywołany z mechanizmem późnego powiązania.

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

Uwagi

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

Atrybut System.Runtime.InteropServices.ComVisibleAttribute z wartością true należy zastosować jawnie lub domyślnie do typu COM, aby metoda CreateComInstanceFrom mogła utworzyć wystąpienie tego typu; w przeciwnym razie TypeLoadException jest zgłaszany.

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

Nuta

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

Dotyczy