2012-06-27 106 views
1

所以我有一個匿名類型,我已經使用了ToString,並將其放入一個文件中。它看起來像這樣(和非常像JSON ...):從字符串創建匿名類型

{ Name = Name, Description = Description, Status = Pending, Key = Template, SubmittedBy = MyName, Identity = 2fb7a40b-e07a-4f1a-a48b-2c2720567f35 } 

現在我想要去的其他方式(編輯:從文件中字符串,並把它放到我可以放入一個已知的格式對象),並把它變成一個匿名類型(具有相同的屬性,但我不在乎,如果他們是澆注料之類的東西,我只想要一個快速的方法來這樣做。

AnonObject = GetObjectFromFile(blah); 
RealObject.Name = AnonObject.Name; 

我只有RealObject的接口,所以我不能添加序列化的類。如果你知道更好的方法,請告訴我。 謝謝。

+0

是'身份「指導?看起來像。 – BoltClock

+2

您可以使用JSON解析器(如JSON.net)。 – jrummell

+0

身份是一種指導。如果我能幫到的話,我不想添加一個庫。 – Sean

回答

6

匿名類型定義在編譯時間,幷包含在程序集中,就像任何其他類型一樣。在執行時創建它們需要動態創建類型 - 它很可能會很快變得雜亂無章。

如果您使用.NET 4,則可以使用ExpandoObjectdynamic;否則我可能只用一個Dictionary<string, object>並改變這一點:(反之亦然這不是真的清楚自己在做什麼。)

RealObject.Name = AnonObject.Name; 

RealObject["Name"] = AnonObject.Name; 

+0

ExpandoObject序列化? – Sean

+0

好的,它沒有。我只需手動將字符串解析爲RealObject,而不是使用中介。謝謝。 – Sean