Связывание с использованием Ninject WithConstructorArgument, который является интерфейсом - PullRequest
0 голосов
/ 30 мая 2019

У меня есть такой класс, который использует интерфейсы

public class CouchbaseCache : ICouchbaseCache, IDistributedCache
{
    public CouchbaseCache(ICouchbaseCacheBucketProvider provider, 
          IOptions<CouchbaseCacheOptions> options)
    {
        Options = options.Value;
        Bucket = provider.GetBucket();
    }
}


public interface ICouchbaseCacheBucketProvider : INamedBucketProvider
{
}

public interface INamedBucketProvider
{
    string BucketName { get; }

    IBucket GetBucket();
}

Я пытаюсь связать с помощью Ninject, предоставив аргументы конструктора, и я понимаю, если бы это была строка в качестве параметра, который я бы сделал («поставщик», «что-то здесь»), но как бы я связал его, если параметр конструктора является интерфейсом? Любое направление на это?

 Bind<IDistributedCache>().To<CouchbaseCache> . 
().InSingletonScope().WithConstructorArgument("provider", ICouchbaseCacheBucketProvider); 
...