Я хочу определить настраиваемый раздел конфигурации и иметь свойство, которое не дает строку, но system.type (или null, если пользователь вводит в нагрузку мусора)Как получить свойство ConfigurationSection в виде System.Type
например:
<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#, а затем преобразовать его в тип в приложении; я хотел бы, чтобы это выполнялось автоматически как часть ответственности ConfigurationManager.
Возможно ли это? Я в порядке, чтобы использовать TypeConverter, если я должен быть, это просто кажется настолько слабым, чтобы сохранить его как строку, а затем выполнить поиск типа в приложении. Это непросто сделать, просто кажется бессмысленным, когда я знаю, что я ищу тип, какова ценность того, что нужно явно это делать.
Я думаю, вы неправильно поняли мой вопрос. я хорошо знаю, как конвертировать из строки в тип, используя .net более 20 минут. мой вопрос заключается в том, как обеспечить автоматическое его выполнение при использовании файлов раздела конфигурации и вообще не делать этого в приложении. , конечно, я могу сохранить его как строку в конфиге, а затем преобразовать эту строку в System.Type в приложении. я не хочу; он должен делать это автоматически в идеале. вот в чем вопрос. – peteisace
На самом деле я несправедлив. хотя это было не то, что я искал, это разумно отвечает на вопрос @kirmir, извините, я был слишком поспешным и слишком суровым. это справедливо, но не совсем то, чем я был. – peteisace