我想編寫一個通用方法來序列化從我的ITable接口繼承的對象。我也想有一個PropertyInfo []的參數,我可以指定需要使用該對象序列化的屬性。那些不存在的被忽略。有沒有辦法告訴XmlSerialize只序列化列出的屬性?使用PropertyInfo []作爲映射序列化對象到XML
方法簽名:
public static string SerializeToXml<T>(T obj, PropertyInfo[] fields = null) where T : ITable
如果字段爲空,自動抓取各個領域。
if (fields == null)
{
Type type = typeof(T);
fields = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
}
您可以使用'XmlIgnore'屬性標記屬性來告訴'XmlSerialzier'不要序列化該屬性。我不知道另一種將這些信息傳遞給'XmlSerializer'的方法。 – rsbarro
@rsbarro - 這看起來像他需要XmlSerializer根據PropertyInfo數組中的內容動態忽略屬性。 – Xaisoft
@MarkP - 這個答案應該有所幫助:http://stackoverflow.com/questions/8553828/how-can-i-ignore-properties-according-to-their-value-with-xmlserializer – Xaisoft