Activator::CreateComInstanceFrom Method (String^, String^, array<Byte>^, AssemblyHashAlgorithm)
Creates an instance of the COM object whose name is specified, using the named assembly file and the default constructor.
Assembly: mscorlib (in mscorlib.dll)
public: static ObjectHandle^ CreateComInstanceFrom( String^ assemblyName, String^ typeName, array<unsigned char>^ hashValue, AssemblyHashAlgorithm hashAlgorithm )
Parameters
- assemblyName
-
Type:
System::String^
The name of a file that contains an assembly where the type named typeName is sought.
- typeName
-
Type:
System::String^
The name of the preferred type.
- hashValue
-
Type:
array<System::Byte>^
The value of the computed hash code.
- hashAlgorithm
-
Type:
System.Configuration.Assemblies::AssemblyHashAlgorithm
The hash algorithm used for hashing files and generating the strong name.
Return Value
Type: System.Runtime.Remoting::ObjectHandle^A handle that must be unwrapped to access the newly created instance.
| Exception | Condition |
|---|---|
| ArgumentNullException | typeName or assemblyName is null. |
| ArgumentException | assemblyName is the empty string (""). |
| PathTooLongException | An assembly or module was loaded twice with two different evidences, or the assembly name is longer than MAX_PATH characters. |
| FileNotFoundException | assemblyName is not found, or the module you are trying to load does not specify a file name extension. |
| FileLoadException | assemblyName is found but cannot be loaded. |
| BadImageFormatException | assemblyName is not a valid assembly. |
| SecurityException | A code base that does not start with "file://" was specified without the required WebPermission. |
| TypeLoadException | An instance cannot be created through COM. -or- typename was not found in assemblyName. |
| MissingMethodException | No matching constructor was found. |
| MemberAccessException | An instance of an abstract class cannot be created. -or- This member was invoked with a late-binding mechanism. |
| NotSupportedException | The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject. |
Use the ObjectHandle::Unwrap method to unwrap the return value.
A System.Runtime.InteropServices::ComVisibleAttribute attribute with a value of true must be applied either explicitly or by default to the COM type so the CreateComInstanceFrom method can create an instance of that type; otherwise, TypeLoadException is thrown.
For information about other exceptions that can be thrown by invoked methods, see the Exceptions section of the Assembly::LoadFrom and CreateInstance methods.
Note |
|---|
Starting with the .NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag::RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller’s grant set or to a subset thereof. (See Security Considerations for Reflection.) To use this functionality, your application should target the .NET Framework 3.5 or later. |
when invoked late-bound through mechanisms such as Type::InvokeMember. Associated enumeration: ReflectionPermissionFlag::MemberAccess
for reading a URI that begins with "file://". Associated enumeration: FileIOPermissionAccess::Read
for reading a URI that does not begin with "file://".
for accessing a nonpublic type when the grant set of the nonpublic type is restricted to the caller's grant set or to a subset thereof. Associated enumeration: ReflectionPermissionFlag::RestrictedMemberAccess
for accessing nonpublic types regardless of their grant set. Associated enumeration: ReflectionPermissionFlag::MemberAccess
Available since 1.1
