C# 反射从类型中获取对象

标签 c# reflection

我有一个类型对象。 我想从这种类型中获取对象实例。 (只是为了使用此对象的 ToString() 方法)。 参见:

    public class P
{
    public string s;
}

class Program
{
    static void Main(string[] args)
    {
        P p = new P();
        p.s = "foobar";
       Type t = p.GetType();
       P p2 = ((t.ToObjet()) as P).s;

       Console.WriteLine(p2.s);
    }
}

最佳答案

Activator.CreateInstance是你想要的。

Type givenType;
var obj = Activator.CreateInstance(givenType);
...
var obj = Activator.CreateInstance(givenType) as GivenType;

编辑:根据您的编辑,您想要的 Type 扩展方法 (ToObject) 实际上是上面的代码。它必须创建一个新对象,因为您无法确定源对象是否仍然存在,即使使用该类型,您也可能会遇到该类型具有多个实例的情况。

关于C# 反射从类型中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303837/

相关文章:

c# - 从 property 属性获取数据

c# - 找出 Windows Server 2008 中的电影数据速率

javascript - Zscaler 的 Ajax 问题

java - 对其他应用程序和类隐藏变量

c# - 如何从属性获取构造函数命名参数

c# - 区分 getter-only 属性和表达式主体属性?

c# - 泛型与接口(interface)的实际优势

c# - 无法对空引用执行运行时绑定(bind) - 空 Excel 单元格

c# - 如何在当前组合框中选择一个值时使另一个组合框可见?

c# - 派生类无法使用 PropertyDescriptorCollection.SetValue 访问 protected setter