1
3
对不起,我只有有限的时间自动取款机,请平我,如果下面的描述应该是太短/抽象
以下是解决方案的概要: 由于您的问题与ASP.NET WebForms相关,因此HttpModule是创建和配置.aspx页面的良好起点。
并根据 22.4.2. Injecting dependencies into custom HTTP modules 嗯, |
2
2
可以使用自动布线(请参见 5.3.6. Autowiring collaborators
我想知道是谁负责创建那些从Foo派生的类的实例? 我认为应该让spring创建那些从Foo派生的Asp.Net页面类的对象。似乎Spring对Asp.net页面有广泛的支持(Spring.Web.support.PageHandlerFactory、Spring.Web.Services.WebServiceHandlerFactory等),我本来会发布一个适合您需要的配置示例,但我还没有使用Asp.net。所以这里有一些链接:
==开始编辑== 为了回答这个问题,我需要知道子对象实例化的决策逻辑是什么。i、 e.具体的子对象何时/何地由谁请求?谁决定要创建的对象的具体类型? 如果您可以控制具体子类的实例化,则可以创建具体类型的实例,并告诉spring在之后设置属性:
22.4.3. Injecting dependencies into HTTP handlers and handler factories . 但是,您必须告诉spring要实例化哪个objectdefinition,而且似乎有一种自动性,这在您的案例中可能很有用(取决于子类实例化的逻辑是什么)(也是1.3Spring文档的22.4.3):
==结束编辑== ==开始编辑== Erich Eichinger(spring.net开发人员之一)似乎 once had exactly the same problem as you do . 看来最后他不得不跟你一样跟集装箱说话。正如Erich在论坛帖子中写道的,他不太乐意直接依赖IoC容器。也许他提出的解决方案已经整合到Spring中了。我会尽力弄清楚的。 ==End2ndInit== |
3
0
我认为您建议的是一个类,它从配置文件中获取属性列表。如果这是真的,你应该调查
|
4
0
在上面的示例中,如果我们可以假设SomeUtil类是通过依赖注入生成的,那么可以将DI框架配置为生成Baz并填充其Bar属性。 我不知道Spring的具体实现,但这是我要研究的主要方向。 当我谈到“约定”约束时,我指的是自动布线。托布森的回答对春季汽车布线有很好的借鉴作用。它似乎比我一直使用的Ninject更难。但是,通过查看这些文档,您似乎可以告诉框架自动将值注入到具有指定名称或类型的任何公共属性中。在我上面的示例中,您可以告诉它应该注入任何名为“Bar”的属性。因为Foo的所有子类都包含一个名为Bar的属性,所以它们都会被注入这个值。这需要对配置文件进行一次性更改,之后的一切都应该“正常工作”
然而,我得到的印象是,问题的真正根源是您没有以正确的方式使用依赖注入。托布森也知道了。如果你说
在确定如何构造SomeUtil的过程中,Spring会发现它首先需要一个Baz。它将注意到Baz上有一个Bar属性,因此它将创建一个Bar并将其注入该属性,然后将Baz传递给SomeUtil的构造函数,然后返回它刚刚创建的SomeUtil。 如果你还不太清楚,我强烈建议你阅读 a good book about Dependency Injection . 学习识别依赖注入的模式和反模式需要一点时间和实践,但是一旦你识别了,这是非常有益的。 |
5
-1
声明BasePage对象,就像您所做的那样,并添加到其中
所有派生实例的配置应如下所示:
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |