У меня есть класс с полем object
, в котором можно хранить null
, DbNull
, int
с, string
с, bool
с или double
с.До сих пор я смог XmlSerializer
автоматически определить тип данных и правильно сериализовать мой класс, кроме случаев, когда мой object
равен DbNull
.
Я получаю эту ошибку: "The type System.DBNull was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically."
.
Какой будет самый простой обходной путь здесь?
На самом деле не так много кода, который можно показать.Это может быть мой код:
public class MyClass
{
public object MyMultiTypesObject { get; set; }
}
MyMultiTypesObject
получит значение, которое будет иметь любой из типов, которые я упомянул выше, потому что это будет преобразование из простого типа данных javascript в тип данных C #когда обрабатывается WebBrowser
.AFAIK, это все типы, которые вы получите.Например, number
s превращается в double
s или int
s, undefined
превращается в null
, а null
превращается в DbNull
.
Я сериализую егокак вы обычно сериализуете класс с XmlSerializer
, вроде как:
XmlSerializer ser = new XmlSerializer(typeof(MyClass));
MyClass mc = new MyClass();
ser.Serialize(File.Create(@"C:\file.xml"), mc);