首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Activator创建实例

使用Activator创建实例
EN

Stack Overflow用户
提问于 2020-02-18 11:07:18
回答 1查看 284关注 0票数 0

我和Activator.CreateInstance有一些麻烦。它抛出"Constructor on type not“异常。

以下是发生错误的方法:

代码语言:javascript
复制
private static void InitializeInternalProperty(Calculation calculation, Type type, IDataProvider dataProvider, params string[] precedants)
{
    PropertiesCollection precedantsCollection = new PropertiesCollection(); //Properties collection implements IKeyedCollection
    foreach (string precedant in precedants)
    {
        precedantsCollection.Add(calculation.properties[precedant]);
    }
    calculation.properties.Add((Property)Activator.CreateInstance(type, dataProvider, precedantsCollection));
}

下面是构造函数,我试图使用:

代码语言:javascript
复制
internal CountryRiskPremium(IDataProvider dataProvider, PropertiesCollection precedants)
{
    Name = Names.CountryRiskPremium;
    InitLinks(precedants);
    _dataProvider = dataProvider;
}

我也试过:

代码语言:javascript
复制
object[] arguments = new object[2];
arguments[0] = dataProvider;
arguments[1] = precedantsCollection;
calculation.properties.Add((Property)Activator.CreateInstance(type, arguments));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-18 11:09:32

Activator只适用于公共构造函数,只使用您正在使用的CreateInstance的简单重载。对于使用private/protected/internal构造函数,需要使用另一个重载。见https://learn.microsoft.com/en-us/dotnet/api/system.activator.createinstance

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60279478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档