相关疑难解决方法(0)

StructureMap有条件的使用

我整天都在摸索着我的头脑,我找不到任何解决方案,所以我得到了帮助.听到我的问题:我有两个实现一个接口的类

public interface ICacheObject
{
    string Get();
}

public class WebCacheObject : ICacheObject
{
    public string Get()
    {
        return "Web";
    }
}

public class SysteCacheObject : ICacheObject
{
    public string Get()
    {
        return "System";
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在其他一些clase For Class in Class Test中,我需要注入WebCacheObject,并且在Test2中我必须注入SystemCacheObject.我在Initialize中做了这个:

            ObjectFactory.Initialize(c =>{ c.For<IMessage>().Use<Message>();
                                       c.For<ICacheObject>().ConditionallyUse(t =>{t.If(g => g.RequestedName == "HTTP")
                                                                                            .ThenIt.Is.ConstructedBy(
                                                                                                () =>
                                                                                                new WebCacheObject());

                                                                                        t.If(g =>g.RequestedName =="OtherCache")
                                                                                            .ThenIt.Is.ConstructedBy(
                                                                                                () =>
                                                                                                new SysteCacheObject
                                                                                                    ());
                                                                                    });
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何调用Test-s clase-s所以如果我这样调用条件是真的(或者如何改变条件,那么这将起作用)

ObjectFactory.GetInstance <'ITEST>()

测试Clase将在其他情况下使用WebCache SystemCache ???

对不起,我的英语不好.

.net c# structuremap

3
推荐指数
1
解决办法
3391
查看次数

标签 统计

.net ×1

c# ×1

structuremap ×1