当您知道要分配的字段的名称时,是否可以将数组分配给未知类型的数组?

Bas*_*mit 2 c# reflection covariance

我需要为一个字段分配一个数组.我不知道字段类型,但我确实有一个实例的引用和字段的名称.我可以假设数组可以转换为字段类型.可以这样做吗?

巴斯

编辑:

希望这段代码能够澄清我想要做的事情,这会导致在assign中出现异常:

class MyClass
{
    static void Main()
    {
        MyClass t = new MyClass();
        A a = new A();
        C[] c = new C[] {new B()};
        t.Assign(a, "field", c);
    }

    void Assign(object obj, string field, object[] value)
    {
        // crashes
        obj.GetType().GetField(field).SetValue(obj, value);
    }
}

class A
{
    public B[] field;
}

class B : C { }

class C { }
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

instance.GetType()
    .GetField("fieldName", BindingFlags.Instance | BindingFlags.NonPublic)
    .SetValue(instance, array);
Run Code Online (Sandbox Code Playgroud)