Я создаю объект Settings в своем приложении, который используется для хранения пользовательских настроек и много чего. Я планирую использовать различные типы данных для моих полей настроек (ints, string, enums, что-то Serializable, действительно).«Сохранить» параметр типа для последующего использования в C#?
Я также хотел бы, если возможно, безопасный тип установки любых параметров. Предлагаемый мною метод будет делать что-то вроде этого:
Tuple<string, Type> SettingName = new Tuple<string, Type>("NumberOfFoos",
typeof(**TYPE**));
public void Set(Tuple<string, Type> key, **TYPE** value) { /* Stuff */ }
Кортеж будет эффективно быть «установка», что пользователь должен нажать значение, и будет состоять из ключевых для этой установки, а также тип это настройка. Мне интересно, есть ли способ заставить компилятор обеспечить, чтобы в методе Set()
тип value
был того же типа, что и объект типа, сохраненный в кортеже, переданном Set()
? Возможно ли, что я предложил? Благодаря!
EDIT: Я подумал о некоторых вещах, которые я должен уточнить.
1) Предполагается, что это статический класс, поэтому я не буду сериализовать весь класс, только его члены. Поэтому мне бы очень хотелось иметь дело с сериализацией для каждого поля. Я планировал сохранить все значения настроек в Dictionary<string, **TYPE**>
и сериализовать это.
2) Определения Tuple
должны быть постоянными и статическими. Я действительно рассматриваю их как нечто вроде типа типа typedef (я действительно должен создать собственную структуру SetKey), которую пользователь переходит к Set
, чтобы указать, какое поле они меняются. Параметр Type предназначен для принудительного применения параметра value
указанного типа.
На самом деле, это закончилось очень хорошо, спасибо! –