Tracy.Bai

Focus on Data analysis and Mining

导航

spring.net 与 asp.net集成

Dependency Injection

DI is a very interesting thing. You can make your design totally decoupled with concrete implementations. To see this in effect, let us create a new string type property in our page's code named Message with a private variable message. And in the Page_Load method, add the following line:

Response.Write(message);

Here we do not set the value of the message variable. We'll set it through the Web.Config file. We now change the object definition for Default.aspx:

<object type="Default.aspx">
<property name="Message" value="Hello from Web.Config"/>
</object>    

Now we have supplied a value outside of the page using the configuration file. We have set a string type value here. We can also set an object type value. To do that, let us define a class Math with one method:

public class Math
{
public int add(int x, int y)
{
return x+y;
}
}

Now let us add a new property Math in the Default.aspx code file like we did for message. In the Page_Load method, we add code:

Response.Write(math.add(30, 50));

In Web.Config we now add new object definition just above object for Default.aspx. So our spring section becomes:

<spring>
<parsers>
</parsers>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects xmlns=http://www.springframework.net
xmlns:db="http://www.springframework.net/database">
<object name="MyMathObj"  type="Math, App_code" />
<!-- Pages -->
<object type="Default.aspx">
<property name="Message" value="Hello from Web.Config"/>
<property name="Math" ref="MyMathObj"/>
</object>
</objects>
</spring>   

posted on 2008-06-14 09:58  Love Fendi  阅读(260)  评论(0)    收藏  举报