我的 class 结构是:
public class PhotoService {
private IRepository _repo;
private DTConfig _config;
public PhotoService(IRepository repo, DTConfig config)
{
_repo = repo;
_config = config;
}
}
public class DTConfig
{
private int _accountId;
public DTConfig(int accountId)
{
_accountId = accountId;
}
}
我的Ninject绑定(bind)就像:
var kernel = new StandardKernel();
kernel.Bind<IPhotoService>().To<PhotoService>();
kernel.Bind<IRepository>().To<Repository>();
kernel.Bind<DTConfig>().ToSelf();
现在我想要的是在创建 PhotoService 实例时将
accountId
作为参数传递var photo = kernel.Get<IPhotoService>();
创建PhotoService实例时,如何将参数传递给DTConfig。从服务中获取accountId,并且在编译时不可用。
如果需要任何其他信息,请随时发表评论。
最佳答案
Yannick的答案很好,但是,这是另一种选择:创建具有查找和返回AccountId逻辑的IAccountService
。然后将该服务注入(inject)到IPhotoService
中。