簡體   English   中英

C#如何創建沒有類定義的對象?

[英]C# How to create objects without class definitions?

是否可以在設計時創建對象而無需使用硬編碼類定義,然后使用基元或甚至強類型數據類型填充屬性?

這可能聽起來令人困惑,因此我將嘗試為您提供一個用例場景。

使用案例:

您有一個XML配置文件,可以保存配置值以連接到SOA應用程序中的各種系統。 在C#中讀取XML文件,但是對於每個系統,配置屬性都不同(例如:SQL可能有連接字符串,而SharePoint可能需要用戶名+密碼+域+ url,而smtp服務器需要用戶名+密碼+端口+網址)

因此,不要像下面那樣創建靜態類

public class SharePointConfigurationpublic class SQLConfiguration ,然后讓每個類都具有自定義屬性(這很麻煩)

要么

使用1990年代的方法, ArrayList或一些命名集合

有沒有更優選的方法來實現這一目標? 利用新的語言功能,仍然可以提供設計時智能感知,這將使代碼更容易維護,更不容易出錯。

我想我正在尋找某種多用途.net 4財產權持有人。 謝謝

如果要在運行時發出代碼?

簽出Reflection.Emit命名空間
或更好
RunSharp - 更好的API

使用PropertyBag的此示例實現。
如果屬性不存在,請立即創建...

http://www.codeproject.com/KB/recipes/propertybag.aspx

你想要的是基於模式的XML。 這將為您提供IntelliSense,包括代碼片段,同時提供靈活性。

根據你的問題(並假設我正確地閱讀它),這是不可能的。 你可以得到的最接近的是使用'dynamic'類型並在運行時將值分配給屬性 - 問題在於,動態沒有Intellisense支持,甚至使用其他類型的解決方案,Intellisense也不會可用,因為屬性只能在運行時附加。

我對你的要求感到困惑嗎?

暫無
暫無

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

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