C# 如何创建转换器类型函数

C# 如何创建转换器类型函数,c#,.net-2.0,C#,.net 2.0,我正在尝试将对象转换为我创建的类。 我可以使用以下代码轻松转换对象: public class Foo { public Bar[] Bars; } object fooObject = assembly.CreateInstance(fooName); Foo foo = (Foo)fooObject; // Where assembly is System.Reflection.Assembly // And I don't know why that I can't conve

我正在尝试将对象转换为我创建的类。 我可以使用以下代码轻松转换对象:

public class Foo
{
    public Bar[] Bars;
}

object fooObject = assembly.CreateInstance(fooName);
Foo foo = (Foo)fooObject;

// Where assembly is System.Reflection.Assembly
// And I don't know why that I can't convert it directly like:
// Foo foo = (Foo)assembly.CreateInstance(fooName);
// @^ that code will always make all Bar in Foo.Bars disappear
所以我试着让它简短/更简单。 我想这样做:

Foo foo = Converter.Convert(assembly.CreateInstance(fooName));
但我怎么能做到这一点呢?
谢谢

如果您知道实际类型,那么只需:

SomeType typed = (SomeType)obj;
typed.MyFunction();
如果您不知道实际的类型,那么:不知道,不知道。您必须使用以下其中一种:

•反思 •实现众所周知的接口 •动态 例如:

// reflection
obj.GetType().GetMethod("MyFunction").Invoke(obj, null);

// interface
IFoo foo = (IFoo)obj; // where SomeType : IFoo and IFoo declares MyFunction
foo.MyFunction();

// dynamic
dynamic d = obj;
d.MyFunction();