Activator.CreateComInstanceFrom Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.