FormatterServices.GetSafeUninitializedObject(Type) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates a new instance of the specified object type.
public:
static System::Object ^ GetSafeUninitializedObject(Type ^ type);
public static object GetSafeUninitializedObject (Type type);
[System.Security.SecurityCritical]
public static object GetSafeUninitializedObject (Type type);
static member GetSafeUninitializedObject : Type -> obj
[<System.Security.SecurityCritical>]
static member GetSafeUninitializedObject : Type -> obj
Public Shared Function GetSafeUninitializedObject (type As Type) As Object
Parameters
- type
- Type
The type of object to create.
Returns
A zeroed object of the specified type.
- Attributes
Exceptions
The type
parameter is null
.
The type
parameter is not a valid common language runtime type.
The caller does not have the required permission.
Remarks
Because the new instance of the object is initialized to zero and no constructors are run, the object might not represent a state that is regarded as valid by that object. GetSafeUninitializedObject should only be used for deserialization when the user intends to immediately populate all fields. It does not create an uninitialized string, since creating an empty instance of an immutable type serves no purpose.
GetSafeUninitializedObject converts all class level Link Demands to Demands to ensure that all direct and indirect callers have the permissions that the demand specifies. Use GetSafeUninitializedObject to increase the level of security when deserializing from a partially trusted source. For better performance in full trust scenarios, use GetUninitializedObject.