0
            Type type = entity.GetType();                
            PropertyInfo[] properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (var p in properties)
            {

                if(p.Name == "State")
                {                        
                    context.Entry(INSTANCE_TO_WHICH_THE_PROPERTY_p_BELONGS_TO).State = FunctionThatWillSetTheState(p.State)
                }
            }

具有通用签名的方法接收类“实体”的实例

public static void EntityAction<TEntity>(TEntity entity)
        where TEntity : class, IObjectWithState

然后循环遍历该实例中的属性
我如何获得属性“p”所属的类的对象/实例?

因为我需要告诉这个函数

context.Entry(INSTANCE_TO_WHICH_THE_PROPERTY_p_BELONGS_TO).State = FunctionThatWillSetTheState(p.State)

谢谢。

4

1 回答 1

-1

您可以获得声明 PropertyInfo 的类的类型:

var t = property.DeclaringType;

如果您已经拥有该实例,那么您可以获得该特定实例的该属性的值>

var v = property.Getvalue(myInstance, null);

但是,如果您还没有实例(例如,您的示例中的“实体”),则不可能从 Type 或 PropertyInfo 获取实例。反射只处理类型和定义,而不是任何特定的实例。

于 2013-10-27T21:57:52.713 回答