【问题标题】:Type.GetType(“{namespace.classname}{assemblyname}”) not working in c#Type.GetType(“{namespace.classname}{assemblyname}”) 在 C# 中不起作用
【发布时间】:2021-04-30 12:48:40
【问题描述】:
  1. Type type1=Type.GetType({namespace.classname}{assemblyname}) //string value
  2. Type type =typeof(namespace.class name);//class name

如果我把这两个放在一起,那么 type1 会加载值,但是当只运行第 1 行时 type1 的值为 null,即使它们都是两个单独的变量 这是一个奇怪的问题

我需要使用激活器并使用字符串调用方法类和方法

【问题讨论】:

标签: c# .net string activator gettype


【解决方案1】:

我不知道我是否理解你的问题。您似乎正在寻找有关如何使用System.Activator 的信息。当您提出问题时,如果您可以提供尽可能多的代码、上下文和清晰性来帮助指导人们回答您的问题,这总是有帮助的。请考虑花一些时间查看Microsoft's documentation 中的说明和示例。

我写了几行示例代码来说明 Activator 可以接受 Type 参数之后的参数。该代码说明Person 对象可以通过需要字符串参数的构造函数创建,方法是在Activator.CreateInstance 中的typeof(Person) 参数之后添加该参数。希望这会有所帮助。

class Person
{
    public string Name { get; set; }

    public Person(string name)
    {
        Name = name;
    }
}
    
class Program
{
    static void Main(string[] args)
    {
        var result = Activator.CreateInstance(typeof(Person), "Joe");
        if (result is Person person)
        {
            Console.WriteLine("Created new person:");
            Console.WriteLine(person.Name);
        }
    }
}

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    相关资源
    最近更新 更多