Я провел тщательный поиск ответа и не нашел его.
Я хочу написать метод, который переводит объект в объект словаря. При вызове этого метода будет предоставлен конкретный тип входного объекта.
Вот что у меня есть до сих пор.
public static Dictionary<string, string> TranslateFormData<T>(Object form)
{
T formData = (T)Convert.ChangeType(form, typeof(T));
Dictionary<string, string> data = new Dictionary<string, string>();
IEnumerator<KeyValuePair<string, string>> pairs = formData.GetEnumerator();
while (pairs.MoveNext())
{
//Code left out for brevity
}
return data;
}
Использование будет примерно таким
Dictionary<string,string> data = FormData.TranslateFormData<FormCollection>(formData);
Однако в методе TranslateFormData строка
IEnumerator<KeyValuePair<string, string>> pairs = formData.GetEnumerator ( );
выдает следующую ошибку:
«T» не содержит определения для «GetEnumerator», и не удалось найти метод расширения «GetEnumerator», принимающий первый аргумент типа «T» (вам не хватает директивы using или ссылки на сборку?)
Как я могу указать Тип для формы объекта, чтобы получить перечислитель?