3

我想为结构映射中的类型注册对象的特定实例,我该怎么做?

例如,

当我做:

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

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

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

所以

myObj == myClass

我如何使用结构图注册 myClass 以促进这一点?

谢谢

安德鲁

4

3 回答 3

6

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

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

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

于 2008-12-16T18:14:07.747 回答
4

您可以通过以下方式注入一个具体实例作为默认实例

ObjectFactory.Inject(typeof(MyAbstractClass), myClass);
于 2008-12-20T23:21:04.127 回答
1

在 StructureMap 中,3 方法已更改,此代码现在可以工作:

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

ObjectFactory.Initialize(x =>
{                
    x.For<IEmailService>().Use(emailService);
});
于 2014-07-30T20:16:55.977 回答