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();