gpt4 book ai didi

c# - IDistributedCache 通过注入(inject)调用构造函数

转载 作者:可可西里 更新时间:2023-11-01 11:24:29 25 4
gpt4 key购买 nike

我有一个基于asp.net core 2.1解决方案使用redis分布式缓存的项目。有些东西我还不明白。

我有一个类 myClassName,它的构造函数需要注入(inject)。

public class myClassName
{
private readonly IDistributedCache _userCache;

public myClassName(IDistributedCache distributedCache) => _userCache
= distributedCache;

public async Task FirstMethod(...)

private async Task SecondMethod(...)

}

我必须从另一个类“myClassNameTwo”创建一个“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(...)
}
}

如何检索 IDistributedCache 服务实例以传递给 myClassName 构造函数?

最佳答案

如果你使用.Net Core,使用依赖指令,如果你在启动时注册了myClassName类,你可以注入(inject)实例。

喜欢,

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 的依赖项将被自动注入(inject)。所以你不需要单独注入(inject)它。

For more details

关于c# - IDistributedCache 通过注入(inject)调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51171308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com