1
我嘗試爲我的實體框架代碼第一類寫一個XML <> Object Mapper。由於EF不會在此刻支持這種自動XML序列化我這樣做是爲了訪問「檔案」對象屬性和操縱底層ProfileData字符串:C#對象引用應自動更改映射字段
[Column(TypeName = "xml")]
public string ProfileData { get; set; }
[NotMapped]
public Profile Profile
{
get { return ProfileData.DeserializeXml<Profile>(); }
set { ProfileData = value.SerializeXml(); }
}
一切工作正常,但ProfileData.DeserializeXml()返回(中課程)一個新的對象,從ProfileData字符串序列化。我認爲擴展方法是不相關的我的問題,但我無論如何它張貼:
public static T DeserializeXml<T>(this string xml) where T : class, new()
{
if(string.IsNullOrWhiteSpace(xml)) return new T();
var serializer = new XmlSerializer(typeof(T));
using (var reader = new StringReader(xml))
{
try { return (T)serializer.Deserialize(reader); }
catch { return null; }
}
}
當我想改變我的對象我這樣做:
var profile = myObject.Profile;
profile.fooVar = "test";
但這不會影響我的myObject的直到我這樣做:
myObject.Profile = profile;
我知道爲什麼,但我並不想這樣做,我想......我們可以說「直接引用」到底層ProfileData字符串我的對象包裝。
任何想法來存檔或不可能?
這就是**完全**我想要的,但某種程度上沒有看到。非常感謝! – Marc