Activator::CreateInstance Method (String^, String^, array<Object^>^)
Creates an instance of the type whose name is specified, using the named assembly and default constructor.
Assembly: mscorlib (in mscorlib.dll)
public: static ObjectHandle^ CreateInstance( String^ assemblyName, String^ typeName, array<Object^>^ activationAttributes )
Parameters
- 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.
- activationAttributes
-
Type:
array<System::Object^>^
An array of one or more attributes that can participate in activation. This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.
This parameter is related to client-activated objects. Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Distributed applications should instead use Windows Communication Foundation.
Return Value
Type: System.Runtime.Remoting::ObjectHandle^A handle that must be unwrapped to access the newly created instance.
| Exception | Condition |
|---|---|
| ArgumentNullException | typeName 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 class, or this member was invoked with a late-binding mechanism. |
| 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. -or- activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject. -or- activationAttributes is not a UrlAttribute array. |
| 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. |
| TargetInvocationException | An error occurred when attempting remote activation in a target specified in activationAttributes. |
Use ObjectHandle::Unwrap to unwrap the return value.
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 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. |
for the ability to call unmanaged code when creating an instance of a delegate. Associated enumeration: SecurityPermissionFlag::UnmanagedCode
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
