我的 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中。

08-03 22:47