当前位置:  开发笔记 > 编程语言 > 正文

激活器和静态类

如何解决《激活器和静态类》经验,为你挑选了3个好方法。

我正在抛弃使用Activator类的想法,以便访问程序集中的资源,否则我将为(依赖注入)创建循环引用.我之前已经完成了我需要引用的vanilla类,但我的问题是:我可以使用Activator来访问静态类吗?

绊倒我的部分是Activator返回给你一个对象的实例,而一个静态类没有实例.这可能吗?



1> GvS..:

您不需要Activator来调用该方法.您直接使用MethodInfo.Invoke.第一个参数可以保留为null.



2> Andrew Hare..:

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"; }
}


+1的代码示例,我懒得键入

3> 小智..:

使用MethodInfo.Invoke的另一个示例

Type myStaticClassType = Type.GetType("MyStaticClassNameSpace",true);
object[] myStaticMethodArguments = {object1,object2...};
MethodInfo myStaticMethodInfo = myStaticClassType.GetMethod("YourMethod");
var myStaticMethodResult = myStaticMethodInfo.Invoke(null,myStaticMethodArguments);

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有