c# – 如何将ConfigurationSection属性作为System.Type获取
发布时间:2020-12-15 04:23:22 所属栏目:百科 来源:网络整理
导读:我想定义一个自定义配置部分,并且有一个属性不会产生字符串,而是一个system.type(如果用户输入了一堆垃圾,则为null) 例如.: myCustomConfig myAnnoyingType="System.String" / 在C#中(在当前的现实世界中) [ConfigurationProperty("myAnnoyingType")]public
我想定义一个自定义配置部分,并且有一个属性不会产生字符串,而是一个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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |