Tip
See the Remarks section of the XmlSerializer class for the list of the natively supported types.
public static T DeserializeSafe<T>(
XElement content,
params Type[]? expectedCustomTypes
)
Public Shared Function DeserializeSafe(Of T) (
content As XElement,
ParamArray expectedCustomTypes As Type()
) As T
public:
generic<typename T>
static T DeserializeSafe(
XElement^ content,
... array<Type^>^ expectedCustomTypes
)
static member DeserializeSafe :
content : XElement *
expectedCustomTypes : Type[] -> 'T
This method works for the results of the Serialize(Object, XmlSerializationOptions) method.
expectedCustomTypes must be specified if content 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 | content 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 | content cannot be deserialized in safe mode. |