asp.net 如何在构造函数中传递除了注入服务之外的参数?

kuarbcqp  于 2024-01-09  发布在  .NET
关注(0)|答案(1)|浏览(160)

Game类的构造函数中,我将作用域服务ISessionsRepository作为注入服务和其他参数传递。

  1. public class Game
  2. {
  3. private ISessionsRepository repo;
  4. public Game(ISessionsRepository injectedRepo, string sessionID, string sessionName)
  5. {
  6. // *code*
  7. }
  8. }

字符串
我知道,这不会工作。但我仍然需要使用new()创建Game类的示例。在ctor参数中,我不想传递ISessionsRepository,只有sessionIDsessionName

  1. Game game = new("1", "name");

ecr0jaav

ecr0jaav1#

您可以为Game添加一个新的构造函数

  1. public Game(string sessionId, string sessionName) {other code}

字符串
编辑:看起来我的建议是一个反模式,正如this question的第一条评论中所述。
如果您仍然需要访问服务,您可以做的是从服务容器中手动检索所需的服务,在示例化Game并将其传递给Game的类中。
Here一个问题,应该可以帮助你做到这一点。
如果你真的不想从外部传递它,你可以创建我建议的新构造函数,让它请求你需要的服务。

相关问题