System.Reflection.MemberTypes在DNX 5.0中的位置
本文关键字:位置 DNX Reflection MemberTypes System | 更新日期: 2023-09-27 18:24:14
.net 4.5拥有它。它在DNXCore v5中的位置?
我的特定错误消息是:DNXCore,Version=v5.0 error CS0103: The name 'MemberTypes' does not exist in the current context.
在以前的.net中,它是System.Reflection
上的Enum
,是obj.GetType().GetMember(memberName).MemberType
(字段、属性等)的结果
编辑:
这就是我正在做的:
using System.Linq;
using System.Reflection;
internal static object Send(object obj, string callableName, object[] parameters = null)
{
var info = InfoFor(obj, callableName);
return ValueFor(obj, info);
}
其中InfoFor
返回MethodInfo
、PropertyInfo
或与callableName
匹配的任何其他值
和下面的ValueFor(其中尝试使用MemberTypes)
private static object ValueFor(object obj, dynamic member)
{
object value = null;
if (member != null)
{
switch ((System.Reflection.MemberTypes)member.MemberType)
{
case MemberTypes.Field:
value = ((FieldInfo)member).GetValue(obj);
break;
case MemberTypes.Property:
value = ((PropertyInfo)member).GetValue(obj, null);
break;
...
看起来(至少目前)这是实现相同功能的推荐方法。
FieldInfo field = member as FieldInfo;
if (field != null)
return field.GetValue(obj);
PropertyInfo property member as PropertyInfo;
if (property != null)
return property.GetValue(obj, null);