【发布时间】:2018-12-21 11:04:43
【问题描述】:
我们有一个通用类库项目,其中有一个名为 myClass 的类,它实现了 IMyClass。
public class MyClass : IMyClass
{
private readonly string _myConfigPath;
public TimeSheet(MyConfigPath myConfigPath)
{
_myConfigPath= myConfigPath.Value;
}
public void GetData(int id)
{
var values= _myConfigPath;
}
}
public interface IMyClass
{
void GetData(int id);
}
我的 MyConfigPath 类是从 ConfigInjector.ConfigurationSetting 抽象类扩展而来的。
public class MyConfigPath : ConfigurationSetting<string>
{
}
在旧项目中,我们使用 AutoFac 通过 ConfigInjector 注入配置设置。
但是现在我们在一个基于 .Net Core2.1 的新项目上,我们必须使用用 MyClass 编写的业务逻辑。
虽然我可以像这样在新项目的控制器中注入 IMyClass 类型
services.ConfigurePOCO<MyConfigPath>(configuration.GetSection("AppSettings:MyConfigPath"));
services.AddTransient<IMyClass , MyClass>();
但分配给 _myConfigPath 的值仍然为空,因为我们没有为 configinjector 提供任何配置信息。
我已尝试关注 StrathWeb Blog 和 Rick Strahl's Web Log 但这些仅适用于强类型对象,但不适用于 configinjector。
两种方法我都试过了
services.Configure<MyConfigPath >(configuration.GetSection("AppSettings:MyConfigPath "));
并创建StrathWeb Blog指定的扩展方法。
services.ConfigurePOCO<MyConfigPath>(configuration.GetSection("AppSettings:MyConfigPath"));
这里更改类库项目的机会很少,因为许多其他尚未在 .net 核心上的项目都在使用它。 这是我的 appsettings.json 文件的方式
{
"AppSettings": {
"MyConfigPath": "C:\\EmployeeUpload"
}
}
任何帮助将不胜感激。
【问题讨论】:
标签: asp.net-core .net-core asp.net-core-mvc asp.net-core-2.0 asp.net-core-webapi