相关疑难解决方法(0)

使用反射动态地将属性转换为其实际类型

我需要动态地将属性转换为其实际类型.我如何/可以使用反射做到这一点?

解释我正在努力的真实场景.我试图在Entity Framework属性上调用"First"扩展方法.要在Framework上下文对象上调用的特定属性作为字符串传递给方法(以及要检索的记录的id).所以我需要对象的实际类型才能调用First方法.

我不能在对象上使用"Where"方法,因为lambda或delegate方法仍然需要对象的实际类型才能访问属性.

此外,由于对象是由实体框架生成的,因此我无法将类型转换为接口并对其进行操作.

这是场景代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Reflection;

namespace NmSpc
{

    public class ClassA
    {
        public int IntProperty { get; set; }
    }

    public class ClassB
    {
        public ClassA MyProperty { get; set; }
    }

    public class ClassC
    {
        static void Main(string[] args)
        {
            ClassB tester = new ClassB();

            PropertyInfo propInfo = typeof(ClassB).GetProperty("MyProperty");
            //get a type unsafe reference to ClassB`s property
            Object property = propInfo.GetValue(tester, null);

            //get the type safe reference to …
Run Code Online (Sandbox Code Playgroud)

c# reflection entity-framework

26
推荐指数
3
解决办法
4万
查看次数

标签 统计

c# ×1

entity-framework ×1

reflection ×1