我有一个使用基于asp.net core 2.1解决方案的分布式缓存的项目。有件事我不明白。
我有一个类redis
和一个要注入的构造函数。
public class myClassName
{
private readonly IDistributedCache _userCache;
public myClassName(IDistributedCache distributedCache) => _userCache
= distributedCache;
public async Task FirstMethod(...)
private async Task SecondMethod(...)
}
从另一个类“myclassname2”中,我必须创建一个“myclassname”实例并访问一些方法。
所以我有:
Public class myClassNameTwo : Hub
{
private readonly AssetsBroadcaster _broadcaster;
public myClassNameTwo(AssetsBroadcaster broadcaster)
{
_broadcaster = broadcaster;
}
public async Task DoSomething(...)
{
myClassName hello = new myClassName(???)
await hello.FirstMethod(...)
}
}
如何检索要传递给
myClassName
构造函数的IDistributedCache
服务实例? 最佳答案
如果您使用的是.NET Core,使用依赖性强制令,则可以在启动时注册MyClassName类的实例。
像,
public class myClassName{
private readonly IDistributedCache _userCache;
public myClassName(IDistributedCache distributedCache) {
_userCache = distributedCache;
}
public async Task FirstMethod(...)
private async Task SecondMethod(...)
}
对于第二个类,它可以如下所示
Public class myClassNameTwo : Hub
{
private readonly AssetsBroadcaster _broadcaster;
private readonly myClassName _myClassName;
public myClassNameTwo(AssetsBroadcaster broadcaster,
myClassName myClassName)
{
_broadcaster = broadcaster;
_myClassName = myClassName;
}
public async Task DoSomething(...)
{
await _myClassName.FirstMethod(...)
}
}
myclassname的依赖项将被自动注入。所以你不需要单独注射。
For more details