Contextual bindings with Ninject 2.0

后端 未结 1 1643
轮回少年
轮回少年 2020-12-06 13:14

In Ninject 1.0 I had following binding definitions:

Bind().To().Only(When.Context.Variable(\"variable\").EqualTo(true));
Bind&l         


        
1条回答
  •  萌比男神i
    2020-12-06 13:55

    You can use metadata,

    [Fact]
    public void MetadataBindingExample()
    {
        string metaDataKey = "key";
        kernel.Bind().To().WithMetadata(metaDataKey, true);
        kernel.Bind().To().WithMetadata(metaDataKey, false);
        kernel.Bind().To();
    
        var weapon = kernel.Get(metadata => metadata.Has(metaDataKey) && metadata.Get(metaDataKey));
        Assert.IsType( weapon );
    
        weapon = kernel.Get(metadata => metadata.Has(metaDataKey) && !metadata.Get(metaDataKey));
        Assert.IsType(weapon);
    
        weapon = kernel.Get(metadata => !metadata.Has(metaDataKey));
        Assert.IsType(weapon);
    }
    

    0 讨论(0)
提交回复
热议问题