Tip
See the Remarks section of the XmlSerializer class for the list of the natively supported types.
public static T DeserializeSafe<T>(
XmlReader reader,
params Type[]? expectedCustomTypes
)
Public Shared Function DeserializeSafe(Of T) (
reader As XmlReader,
ParamArray expectedCustomTypes As Type()
) As T
public:
generic<typename T>
static T DeserializeSafe(
XmlReader^ reader,
... array<Type^>^ expectedCustomTypes
)
static member DeserializeSafe :
reader : XmlReader *
expectedCustomTypes : Type[] -> 'T
The reader position must be before the content to deserialize.
expectedCustomTypes must be specified if the serialization stream contains names of natively not supported types.
T is allowed to be an interface or abstract type but if it's different from the actual type of the result, then the actual type also might needed to be included in expectedCustomTypes.
For arrays it is enough to specify the element type and for generic types you can specify the natively not supported generic type definition and generic type arguments separately. If expectedCustomTypes contains constructed generic types, then the generic type definition and the type arguments will be treated as expected types in any combination.
ArgumentNullException | reader must not be . |
NotSupportedException | Deserializing an inner type is not supported. |
ReflectionException | An inner type cannot be instantiated or serialized XML content is corrupt. |
ArgumentException | XML content is inconsistent or corrupt. |
InvalidOperationException | XML content cannot be deserialized in safe mode. |