다음을 통해 공유


Activator.CreateComInstanceFrom 메서드

정의

이름이 지정된 COM 개체의 인스턴스를 만듭니다.

오버로드

CreateComInstanceFrom(String, String)

명명된 어셈블리 파일 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 COM 개체의 인스턴스를 만듭니다.

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

명명된 어셈블리 파일 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 COM 개체의 인스턴스를 만듭니다.

CreateComInstanceFrom(String, String)

명명된 어셈블리 파일 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 COM 개체의 인스턴스를 만듭니다.

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

매개 변수

assemblyName
String

이름이 typeName 형식이 검색되는 어셈블리가 포함된 파일의 이름입니다.

typeName
String

인스턴스를 만들 형식의 이름입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

예외

typeName 또는 assemblyNamenull.

COM을 통해 인스턴스를 만들 수 없습니다.

-또는-

assemblyName typeName 찾을 수 없습니다.

일치하는 생성자를 찾을 수 없습니다.

assemblyName 찾을 수 없거나 로드하려는 모듈에서 파일 이름 확장명을 지정하지 않습니다.

추상 클래스의 인스턴스를 만들 수 없습니다.

-또는-

이 멤버는 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

호출자는 MarshalByRefObject상속되지 않는 개체에 대한 활성화 특성을 제공할 수 없습니다.

assemblyName 빈 문자열("")입니다.

설명

반환 값을 래프 해제하려면 ObjectHandle.Unwrap 메서드를 사용합니다.

CreateComInstanceFrom 메서드가 해당 형식의 인스턴스를 만들 수 있도록 값이 true 있는 System.Runtime.InteropServices.ComVisibleAttribute 특성을 COM 형식에 명시적으로 또는 기본적으로 적용해야 합니다. 그렇지 않으면 TypeLoadException throw됩니다.

호출된 메서드에서 throw할 수 있는 다른 예외에 대한 자세한 내용은 Assembly.LoadFromCreateInstance 메서드의 Exceptions 섹션을 참조하세요.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식을 만들 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

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

명명된 어셈블리 파일 및 매개 변수가 없는 생성자를 사용하여 이름이 지정된 COM 개체의 인스턴스를 만듭니다.

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

매개 변수

assemblyName
String

이름이 typeName 형식이 검색되는 어셈블리가 포함된 파일의 이름입니다.

typeName
String

인스턴스를 만들 형식의 이름입니다.

hashValue
Byte[]

계산된 해시 코드의 값입니다.

hashAlgorithm
AssemblyHashAlgorithm

파일을 해시하고 강력한 이름을 생성하는 데 사용되는 해시 알고리즘입니다.

반환

새로 만든 개체에 액세스하려면 래핑을 해제하거나 Nullable<T> 인스턴스에 대해 null 핸들입니다.

예외

typeName 또는 assemblyNamenull.

assemblyName 빈 문자열("")입니다.

어셈블리 또는 모듈이 두 개의 서로 다른 증명 정보로 두 번 로드되었습니다.

-또는-

assemblyName 시스템 정의 최대 길이보다 깁니다.

assemblyName 찾을 수 없거나 로드하려는 모듈에서 파일 이름 확장명을 지정하지 않습니다.

assemblyName 찾을 수 있지만 로드할 수 없습니다.

assemblyName 유효한 어셈블리가 아닙니다.

"file://"로 시작하지 않는 코드 베이스가 필요한 WebPermission없이 지정되었습니다.

COM을 통해 인스턴스를 만들 수 없습니다.

-또는-

assemblyName typeName 찾을 수 없습니다.

일치하는 생성자를 찾을 수 없습니다.

추상 클래스의 인스턴스를 만들 수 없습니다.

-또는-

이 멤버는 런타임에 바인딩 메커니즘을 사용하여 호출되었습니다.

호출자는 MarshalByRefObject상속되지 않는 개체에 대한 활성화 특성을 제공할 수 없습니다.

설명

반환 값을 래프 해제하려면 ObjectHandle.Unwrap 메서드를 사용합니다.

CreateComInstanceFrom 메서드가 해당 형식의 인스턴스를 만들 수 있도록 값이 true 있는 System.Runtime.InteropServices.ComVisibleAttribute 특성을 COM 형식에 명시적으로 또는 기본적으로 적용해야 합니다. 그렇지 않으면 TypeLoadException throw됩니다.

호출된 메서드에서 throw할 수 있는 다른 예외에 대한 자세한 내용은 Assembly.LoadFromCreateInstance 메서드의 Exceptions 섹션을 참조하세요.

메모

.NET Framework 2.0부터 이 메서드를 사용하여 호출자에게 ReflectionPermissionFlag.RestrictedMemberAccess 플래그를 사용하여 ReflectionPermission 부여된 경우 및 게시되지 않은 형식이 포함된 어셈블리의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 이 메서드를 사용하여 게시되지 않은 형식을 만들 수 있습니다. 리플렉션대한 보안 고려 사항을 참조하세요. 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상