Cri*_*ade 5 c# reflection singleton
所以我有以下内容:
public class Singleton
{
private Singleton(){}
public static readonly Singleton instance = new Singleton();
public string DoSomething(){ ... }
public string DoSomethingElse(){ ... }
}
Run Code Online (Sandbox Code Playgroud)
使用反射如何调用DoSomething方法?
我问的原因是因为我将方法名称存储在XML中并动态创建UI.例如,我正在动态创建一个按钮,并告诉它在单击按钮时通过反射调用的方法.在某些情况下,它将是DoSomething,或者在其他情况下,它将是DoSomethingElse.
Jon*_*eet 11
未经测试,但应该工作......
string methodName = "DoSomething"; // e.g. read from XML
MethodInfo method = typeof(Singleton).GetMethod(methodName);
FieldInfo field = typeof(Singleton).GetField("instance",
BindingFlags.Static | BindingFlags.Public);
object instance = field.GetValue(null);
method.Invoke(instance, Type.EmptyTypes);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5411 次 |
最近记录: |