簡體   English   中英

生成基於填充對象的代碼

[英]Generate code based which populate an object

假設我有以下課程。

public class MyClass {
   public string Data1 { get; set; }
   public MyOtherClass Data2 { get; set; }
   // 50+ other properties...
}

public class MyOtherClass {
   public string OtherData1 { get; set; }
   // More properties
}

有一些代碼可以實現該類,並使用所有數據填充它。 我想用這個對象進行測試。 我可以簡單地將結構序列化為XML並稍后重新加載。 但是,我真正想要的是在代碼中構建整個對象樹。 換一種說法:

MyClass myClass = new MyClass {
    Data1 = "Hello",
    Data2 = new MyOtherClass {
        OtherData1 = "World",
        // More...
    },
    // More...
}

我可以自己編寫所有內容,但由於存在大量屬性和子類,因此需要數小時且容易出錯。 這是我的問題:給定一個對象如何生成填充該對象的代碼?

我會寫一個T4模板 查看一個正在做某事的示例 ,盡管它非常遠,類似於您的需求。

我會使用json作為數據格式,並使用類似http://json2csharp.com的內容來生成用於序列化和反序列化json的類。 或者給定已經存在的類注釋它們並將它們序列化。

這將處理任意嵌套並且可維護。 甚至可以在沒有重新編譯的情況下編輯值,這通常是一件好事。 該鏈接還提供了有關如何指定特定類型,處理枚舉,對象鏈接等的示例。

也許如果你指定為什么它絕對必須從代碼生成,我們可以給出更好的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM