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返回MethodInfoPropertyInfo或与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;
                   ...

System.Reflection.MemberTypes在DNX 5.0中的位置

看起来(至少目前)这是实现相同功能的推荐方法。

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);