0
Я создал тип с System.Reflection.Emit
следующими MSDN docSerialize время выполнения создана тип
Я создаю мой тип и экземпляр с этим кодом:
//following the tutorial I created a method which returns a dynamic type
Type myDynamicType = CreateNewObject("MyDynamicType", fields);
var instance = Activator.CreateInstance(myDynamicType);
теперь я хочу, чтобы seralize моего объекта с XmlSerializer
попытался это:
FileStream fs = new FileStream(@"C:\Test\SerializedDynamic.XML", FileMode.Create);
XmlSerializer xs = new XmlSerializer(typeof(object));
xs.Serialize(fs, instance);
, но он выдает исключение:
"The type MyDynamicType was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically."
Любая помощь?
вы пробовали литья ?, или это http://msdn.microsoft.com/en-gb/library/e5aakyae.aspx – Sayse
Что произойдет, если вы выполните: 'XmlSerializer xs = new XmlSerializer (myDynamicType);'? –
Можете ли вы сделать то, что он говорит вам делать? Можно ли добавлять атрибуты к вашему динамическому типу? В основном '[XmlInclude]', который должен указывать, какой тип данных он есть. Однако я думаю, что проблема действительно в том, что нашел @JonEgerton - вам нужно предоставить тип для сериализатора (также можно попробовать «новый XmlSerializer (instance.GetType()), если вы передаете экземпляр в качестве параметра в метод, который выполняет сериализацию) – Sinatr