asp.net - 如何在 ASP.NET Core v2 中传递字符串以及注入的依赖项
问题描述
我的 ASP.NET Core v2 项目的 Startup.cs 类中有以下方法。我的问题是如何设置一个类/服务,其中一个字符串值被传递给一个类,以及一个注入的依赖项。
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add custom services.
services.AddSingleton<IMyAssistantClass, MyAssistantClass);
services.AddSingleton<MyClassManager>(s => new MyClassManager("connectionString", /* How to inject IMyAssistantClass? */);
// Other setup....
}
解决方案
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IMyAssistantClass, MyAssistantClass);
services.AddSingleton<MyClassManager>(s =>
{
var imy = (IMyAssistantClass) s.GetService(typeof(IMyAssistantClass))
new MyClassManager("connectionString", imy);
}
);
}
// 让它更方便的好方法是添加扩展方法IServiceCollection
,比如
public static T Resolve<T>(this IServiceProvider serviceProvider)
{
return (T) serviceProvider.GetService(typeof(T));
}
然后你可以打电话s.Resolve<IMyAssistantClass>();
推荐阅读
- c++ - 包含库文件但仍未定义引用
- mysql - mysqldump:无法执行。information_schema 中的未知表“column_statistics”
- html - 如何根据片段创建电话输入
- ios - iOS 密码自动填充附件视图使应用程序卡住
- c# - C# 的 StringInfo 和 TextElementEnumerator 无法正确识别字素
- react-native - Actions.replace(key) 在本机反应中不起作用,它给出错误,如错误所示
- java - 无法将“java.lang.String”类型的值转换为所需的模型对象类型
- typescript - 使用量角器、typepscript 和 jasmine 进行自动化测试
- c - c管道等待消息达到一定大小然后发送?
- react-native - 如何在 React Native 上拦截 dev reload 事件?