我如何在C#中通过反射分配一个静态方法来委托

考虑下面的代码:

internal delegate object FactoryMethod();

现在说我有下面的代码:

String myStaticMethod = "FooFactory.GetInstance()";

我怎么下?

FactoryMethod myMethod = //A delegate pointing to FooFactory.GetInstance()

我在谷歌上搜索了,但我似乎无法找到一个清晰的例子,或者至少一个静态方法交易。

--------------解决方案-------------

使用的重载之一Delegate.CreateDelegate 。 这是一种可能的方式:

var className = "FooFactory";
var methodName = "GetInstance";
var implType = Type.GetType(className);
var implMethod = implType.GetMethod(methodName, new Type[0]);
var res = Delegate.CreateDelegate(typeof(FactoryMethod), implMethod);

我发现这一点:

typeof(YourClass).GetMethod("GetInstance", BindingFlags.Public | BindingFlags.Static);

分类:C# 时间:2015-03-15 人气:0
本文关键词: 反射
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.451 (s). 10 q(s)