Определите, может ли отраженному свойству быть присвоено данное значение - PullRequest
0 голосов
/ 08 марта 2011

Какой самый простой способ определить, может ли отраженному свойству быть присвоено заданное значение?

Подпись метода, что мне нужно:

public static bool IsAssignable(PropertyInfo property, object value)
{        
    throw new NotImplementedException();
}

Этот метод должен работать для типа значения и ссылочного типа, и любое значение равно нулю или нет.

Спасибо за помощь, ребята.

Manitra.

Ответы [ 3 ]

3 голосов
/ 08 марта 2011

Вы, вероятно, ищете Type.IsAssignableFrom

2 голосов
/ 08 марта 2011

Вы не можете определить тип null, который передается как object. Вы можете только сказать, если собственность может взять null на всех.

Вы можете взять тип времени компиляции по этой причине:

public static bool IsAssignable<T>(PropertyInfo property, T value)
{        
    if (value != null)
    {
        return property.PropertyType.IsAssignableFrom(value.GetType());
    }
    return property.PropertyType.IsAssignableFrom(typeof(T));
}
1 голос
/ 08 марта 2011

Благодаря ответам Стефана и Джона и вопросу «Определить, может ли отраженное свойство может быть присвоено нулевое значение», вот код, который я буду использовать.чисто слабо напечатанная мода.

Манитра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...