【发布时间】:2018-04-20 14:33:35
【问题描述】:
我正在使用 asp.net core mvc 构建一个网站,对于登录,我添加了 enc.dll 文件的依赖项,它只是加密/解密用户信息。 我用 enc.dll 文件制作了一个 Seeder 类,它有一个 key 属性并用这个 key 加密/解密。然后我将它添加到我的服务中以使用依赖注入功能。
services.AddSingleton<ISeeder, Seeder>();
虽然当我调用播种器类的 enc、dec 函数时它运行良好,但它不会返回任何错误。下面是示例代码。
private readonly ISeeder seed;
public AccountController(ISeeder seed)
{
this.seed = seed;
}
[HttpGet]
public IActionResult test()
{
string s = seed.Enc("testEncode");
return Json(s);
}
所以当我返回由种子实例创建的字符串 s 时它可以工作。
但是当我尝试在不使用种子实例的情况下返回视图并引发错误时它不起作用,其中 Enc 是我正在使用的 dll 库。
InvalidOperationException: Cannot find compilation library location for package 'Enc'
Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths(ICompilationAssemblyResolver resolver, List<string> assemblies)
下面是我的播种机代码。
private Enc enc;
private readonly EncKey key;
public Seeder(IOptions<EncKey> options)
{
enc = new Enc();
key = options.Value;
}
public string Dec(string toDec)
{
return enc.Dec(toDec, key.EncryptKey);
}
public string Enc(string toEnc)
{
return enc.Enc(toEnc, key.EncryptKey);
}
有人可以帮忙吗?我正在开发 .net core 2.0 环境
【问题讨论】:
-
这个问题在2.0.3已经修复,应用需要通过nuget更新VS和项目包
-
@itikhomi 谢谢,现在可以使用了。
标签: c# dependency-injection asp.net-core-mvc asp.net-core-2.0