Установить значения свойств объекта с разными типами из значений formcollection - PullRequest
0 голосов
/ 18 июня 2020

Привет, мне нужно установить значения объекта с разными типами из значений FormCollection. У меня есть этот метод:

public void EditProduct(string category, FormCollection formCollection) //Edit choosen product.
    {
        var product = GetNewProduct(category);
        var EfContext = GetEfContext(category);
        foreach (var property in product.GetType().GetProperties())
        {
            var NewValue = formCollection[property.Name];
            property.SetValue(product, NewValue);
        }
        EfContext.GetType().GetMethod("EditProduct").Invoke(EfContext, new object[] { product });
    }

Но я получаю ошибки при преобразовании из строки в другой тип объекта. Как исправить?

1 Ответ

0 голосов
/ 18 июня 2020

Решение было Convert.ChangeType() методом.

public void EditProduct(string category, FormCollection formCollection) //Edit choosen product.
    {
        var product = GetNewProduct(category);
        var EfContext = GetEfContext(category);
        foreach (var property in product.GetType().GetProperties())
        {
            var NewValue = Convert.ChangeType(formCollection[property.Name], property.PropertyType);
            property.SetValue(product, NewValue);
        }
        EfContext.GetType().GetMethod("EditProduct").Invoke(EfContext, new object[] { product });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...