我怎样才能使用结构图asp.net 3.5

时间:2009-09-02 19:46:28

标签: asp.net structuremap

我是结构图的新手但我想在我的asp.net网站中使用它来进行依赖注入 任何人都可以建议我使用结构图进行依赖注入的简单例子

2 个答案:

答案 0 :(得分:2)

你需要做这样的事情: -

StructureMapConfiguration
    .ForRequestedType<IResourceA>()
    .TheDefaultIsConcreteType<ResourceB>()
    .CacheBy(InstanceScope.Singleton);

这告诉StructureMap在有ResourceA请求时注入ResourceB。

答案 1 :(得分:1)

Structure Map

您可以以编程方式或通过配置文件进行配置。

Programatical示例(还有其他方法):

StructureMap.StructureMapConfiguration.ForRequestedType<ISomething>().TheDefaultIsConcreteType<ConcreteSomething>();

然后您可以使用以下代码获取已配置类型的实例:

//The concrete type will be ConcreteSomething

ISomething instance = ObjectFactory.GetInstance<ISomething>();

您可以在配置文件中执行此操作:

<StructureMap MementoStyle="Attribute">
        <DefaultInstance PluginType="Blah.ISomething, Blah.SomethingDLL" PluggedType="Blah.Concrete.ConcreteSomething,Blah.ConcreteDLL"/>
</StructureMap>

在main方法或Global.asax中,您可以通过以下方式设置此配置:

 StructureMap.ObjectFactory.Initialize(x => { x.PullConfigurationFromAppConfig = true; });

并以与上述相同的方式使用它:

ISomething instance = ObjectFactory.GetInstance<ISomething>();

如果具体类具有需要在其中注入实例的构造函数,并且您已经配置了这些实例,那么具体类型将由框架注入。

有一些方法可以将参数传递给构造函数,处理Gereric类型,创建使用特定构造函数/属性值配置的命名实例。我使用这个框架并非常喜欢它。