我正在抛弃使用Activator类的想法,以便访问程序集中的资源,否则我将为(依赖注入)创建循环引用.我之前已经完成了我需要引用的vanilla类,但我的问题是:我可以使用Activator来访问静态类吗?
绊倒我的部分是Activator返回给你一个对象的实例,而一个静态类没有实例.这可能吗?
您不需要Activator来调用该方法.您直接使用MethodInfo.Invoke.第一个参数可以保留为null.
GvS是正确的 - 这是一个用法的例子:
using System; using System.Reflection; class Program { static void Main() { Type type = Type.GetType("Foo"); MethodInfo info = type.GetMethod("Bar"); Console.WriteLine(info.Invoke(null, null)); } } static class Foo { public static String Bar() { return "Bar"; } }
使用MethodInfo.Invoke的另一个示例
Type myStaticClassType = Type.GetType("MyStaticClassNameSpace",true);
object[] myStaticMethodArguments = {object1,object2...};
MethodInfo myStaticMethodInfo = myStaticClassType.GetMethod("YourMethod");
var myStaticMethodResult = myStaticMethodInfo.Invoke(null,myStaticMethodArguments);