有幾次,我發現自己想要獲取對象的狀態,並將其變爲常量。例如,我正在設計一個UI,顯示來自數據庫調用的信息。 我只是想要一個數據樣本來玩,所以我可以看到什麼樣的一切。序列化對象狀態爲常量C#類
讓說我有:
public interface IPerson
{
string Name{get;}
string Age {get;}
...
}
public class Person
{
string Name{get; set}
string Age {get; set}
...
}
和一些不說,數據庫調用,或什麼都加載它的方法。 對於這個例子可以說爲simpicities起見,加載它從一個CSV文件: 這個例子的文件包括:「夫人McKenzy,56,..」
IPerson Load(string fileName)
{
var text = File.ReadAllText(filename);
var parts = text.Split(",");
return new Person()
{
Name = parts[0],
Age = Int32.Parse(parts[1]),
...
}
}
從這個我想我的生成類樣品(作爲一個cs文件)
public class SamplePerson : IPerson
{
string Name{get {return "Mrs McKenzy"}}
string Age {get {return 56}}
...
}
我可以看到這樣做的唯一方法是連載的對象(概率爲XML,這樣我就可以看到它是什麼),然後有我SamplePerson deserialise的在其構造函數中創建對象,以便自己初始化。 現在這不是一個糟糕的解決方案。 但是我認爲如果我能夠「串行化爲C#」,它會更好。 似乎可以放在一起沒有與反射很多麻煩, 所以我想知道是否有一些現有的庫。 (如果不是我想這可能是一個有趣的項目要是我得到BORD)
你所描述的代碼生成,不繫列化 – 2012-02-08 14:09:25
它被標記代碼生成。 在這種情況下,它是一種序列化(至少在我看來) 我所做的大多數代碼生成都涉及到以一種語言獲取代碼並在另一種語言中生成代碼 - 例如特定於域的語言。 因爲這是關於持久對象狀態 – 2012-02-08 14:13:10