[英]How do I get ConfigurationSection property as a System.Type
我想定義一個自定義配置部分,並且有一個屬性不會產生字符串,而是一個system.type(如果用戶輸入了一堆垃圾,則為null)
例如:
<myCustomConfig myAnnoyingType="System.String" />
在C#中(在當前的現實世界中)
[ConfigurationProperty("myAnnoyingType")]
public string MyAnnoyingType
{
get { return (string)this["myAnnoyingType"]; }
}
// else where in the app
var stringType = thatConfig.MyAnnoyingType
var actualType = Type.GetType(stringType);
// wow that was boring.
在C#中(在理想世界中)
[ConfigurationProperty("myAnnoyingType")]
public Type MyAnnoyingType
{
get { return (Type)this["myAnnoyingType"]; }
}
我想要的不是必須將項目保存為C#中的字符串,然后將其轉換為應用程序中的Type; 我希望這是作為ConfigurationManager職責的一部分自動完成的。
這可能嗎? 如果必須的話,我可以使用TypeConverter,只是將它保持為字符串似乎很弱,然后在應用程序中進行類型查找。 這不難做到,當我知道我正在尋找一種類型時,似乎毫無意義,必須明確地做它的價值。
嘗試使用將為您進行轉換的TypeConverterAttribute。 這對我有用。
[ConfigurationProperty("type")]
[TypeConverter(typeof(TypeNameConverter))]
public Type Type
{
get
{
return (System.Type)this["type"];
}
set
{
this["type"] = value;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.