【问题标题】:How can I create a new instance of a class (specified by a string) and also use named arguments? [duplicate]如何创建类的新实例(由字符串指定)并使用命名参数? [复制]
【发布时间】:2015-11-18 20:13:36
【问题描述】:

如何使用字符串变量 className 实例化一个对象,并将构造函数参数作为命名对传递? (我不希望参数依赖于顺序,也不希望将它们作为对象传递并必须将它们强制转换为它们的原始类)

string className = "ExternalApi";
Integration integration = getIntegrationObject();
Logger logger = new Logger();

// how to do new ExternalApi(integration:integration, logger:logger)

【问题讨论】:

    标签: c#


    【解决方案1】:

    看一下参数

    params Object[] args 
    

    Activator.CreateInstance
    

    【讨论】:

    • 所以我已经知道如何没有命名参数:Activator.CreateInstance(Type.GetType(className), integration, logger);我想知道如何使用命名参数。我不明白你的问题是如何暗示我实现这个目标的。
    【解决方案2】:

    您可以使用 Activator.CreateInstance(Type type) 完成此操作

    请看这里:https://msdn.microsoft.com/en-us/library/wccyzw83(v=vs.110).aspx

    【讨论】:

    • 您能解释一下如何在此方法中使用命名参数。
    猜你喜欢
    • 2015-06-27
    • 2011-04-14
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多