繁体   English   中英

如何让StructureMap返回所请求类型的特定实例

[英]How to get StructureMap to return a specific instance for a requested type

我想为structuremap中的类型注册一个对象的特定实例,我该怎么做?

例如,

当我做:

var myObj = ObjectFactory.GetInstance(typeof(MyAbstractClass));

我希望它返回一个以前构造的具体类,我创建如下:

var myClass = new MyConcreteClass("bla"); // MyConcreteClass : MyAbstractClass

所以

myObj == myClass

如何使用structuremap注册myClass以方便此操作?

谢谢

安德鲁

我相信你会在初始化时这样做

        ObjectFactory.Initialize(x =>
        {
            x.ForRequestedType<MyAbstractClass>().TheDefault.IsThis(myClass);
        });

其中myClass是您要返回的对象的实例。

您可以将具体实例注入默认值

ObjectFactory.Inject(typeof(MyAbstractClass), myClass);

在StructureMap 3中,方法已经改变,现在这个代码可以工作:

var emailService = new EmailService(ConfigurationManager.AppSettings[mykey]);

ObjectFactory.Initialize(x =>
{                
    x.For<IEmailService>().Use(emailService);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM