【发布时间】:2019-02-07 01:56:51
【问题描述】:
我正在尝试从静态运行非静态方法并在非静态方法中使用依赖注入。 (我试图在一个班级内这样做)
我的代码如下所示:
public class Tokens
{
private IRefreshTokenRepository refreshTokenRepository;
public Tokens(IRefreshTokenRepository refreshTokenRepository)
{
this.refreshTokenRepository = refreshTokenRepository;
}
// I understand that problem is there, but I should to write this
//constructor because otherwise I can not use class variable in static method
public Tokens()
{
}
public static async Task<string> GenerateJwt()
{
RefreshToken rf = new RefreshToken{...};
Tokens t = new Tokens();
t.StoreRefToken(rf);
return JsonConvert.SerializeObject(...);
}
public async void StoreRefToken(RefreshToken reft)
{
this.refreshTokenRepository.InsertRefreshToken(reft);
await refreshTokenRepository.SaveAsync();
}
}
正如你从代码中理解的那样,当我写“Tokens t = new Tokens();”时此代码使用了构造函数而没有导入存储库。该怎么办?我可以在单个课程中修复它吗?
谢谢
附:如果问题很愚蠢,我很抱歉
【问题讨论】:
-
你为什么用java标记?
-
因为在 Java 依赖注入和“从静态方法运行非静态方法”的工作方式相同,我认为 Java 开发人员可以回答。如果我错了,请说出原因,我会删除标签。
-
为什么使用静态开头?这似乎是XY problem。 minimal reproducible example 应该有助于澄清实际问题
-
谢谢Nkosi,我一定会阅读这篇文章和问题的。
标签: c# asp.net .net oop dependency-injection