Activator::CreateInstance Method (AppDomain^, String^, String^)
Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and default constructor.
Assembly: mscorlib (in mscorlib.dll)
public: [SecurityCriticalAttribute] static ObjectHandle^ CreateInstance( AppDomain^ domain, String^ assemblyName, String^ typeName )
Parameters
- domain
-
Type:
System::AppDomain^
The remote domain where the type named typeName is created.
- assemblyName
-
Type:
System::String^
The name of the assembly where the type named typeName is sought. If assemblyName is null, the executing assembly is searched.
- typeName
-
Type:
System::String^
The fully qualified name of the preferred type.
Return Value
Type: System.Runtime.Remoting::ObjectHandle^A handle that must be unwrapped to access the newly created instance.
| Exception | Condition |
|---|---|
| ArgumentNullException | typeName or domain is null. |
| MissingMethodException | No matching public constructor was found. |
| TypeLoadException | typename was not found in assemblyName. |
| FileNotFoundException | assemblyName was not found. |
| MethodAccessException | The caller does not have permission to call this constructor. |
| MemberAccessException | Cannot create an instance of an abstract type. -or- This member was invoked with a late-binding mechanism. |
| TargetInvocationException | The constructor, which was invoked through reflection, threw an exception. |
| InvalidComObjectException | The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID. |
| NotSupportedException | Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported. |
| BadImageFormatException | assemblyName is not a valid assembly. -or- The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0. |
| FileLoadException | An assembly or module was loaded twice with two different evidences. -or- The assembly name or code base is invalid. |
Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.
Use ObjectHandle::Unwrap to unwrap the return value.
Note |
|---|
This method uses SecurityAction::LinkDemand to require the immediate caller to have full trust. |
for the ability to call unmanaged code when creating an instance of a delegate. Associated enumeration: SecurityPermissionFlag::UnmanagedCode
for the ability to invoke operations on all type members. Associated enumeration: ReflectionPermissionFlag::MemberAccess
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Available since 2.0
