簡體   English   中英

Type.GetType(“{namespace.classname}{assemblyname}”) 在 c# 中不起作用

[英]Type.GetType(“{namespace.classname}{assemblyname}”) not working in c#

  1. Type type1=Type.GetType({namespace.classname}{assemblyname}) //string value
  2. Type type =typeof(namespace.class name);//class name

如果我把這兩個放在一起,那么 type1 加載值但是當只運行第 1 行時 type1 值是 null,即使它們都是兩個單獨的變量這是一個奇怪的問題

我需要使用激活器並調用方法 class 和帶有字符串的方法

我不知道我是否理解你的問題。 您似乎正在尋找有關如何使用System.Activator的信息。 當您提出問題時,如果您可以提供盡可能多的代碼、上下文和清晰度來幫助指導人們回答您的問題,這總是有幫助的。 請考慮花一些時間查看Microsoft 文檔中的說明和示例。

我寫了幾行示例代碼來說明 Activator 可以接受Type參數之后的參數。 該代碼說明了Person object 可以通過需要字符串參數的構造函數創建,方法是在Activator.CreateInstancetypeof(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);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM