首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Spring.net经过xml配置文件给aspx页面注入对象

2012-08-07 
Spring.net通过xml配置文件给aspx页面注入对象最近在用spring.net 但是如何配置xml文件才可以直接将对象注

Spring.net通过xml配置文件给aspx页面注入对象
最近在用spring.net 但是如何配置xml文件才可以直接将对象注入到aspx页面中?
我的配置文件

C# code
<configuration>  <configSections>    <sectionGroup name="spring">      <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>      <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler,Spring.Core"/>    </sectionGroup>  </configSections>  <spring>    <parsers>      <parser type="Spring.Data.Config.DatabaseNamespaceParser,Spring.Data"/>    </parsers>    <context type="Spring.Context.Support.XmlApplicationContext,Spring.Core">      <resource uri="~/App_Data/Spring/CommonDao.xml"/>      <resource uri="~/App_Data/Spring/DataAccessObjects.xml"/>      <resource uri="~/App_Data/Spring/Business.xml"/>      <resource uri="~/App_Data/Spring/WebApplication.xml"/>    </context>  </spring>  <system.web>    <compilation debug="true" targetFramework="4.0" />    <httpModules>      <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>    </httpModules>    <httpHandlers>      <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>    </httpHandlers>

这一部分是webconfig中关于spring的配置
C# code
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">  <object id="managerUser" type="AdminApplication.AdminManager.ManagerUser, AdminApplication" singleton="false">    <property name="AdminManager" ref="adminManager" />  </object></objects>

C# code
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">  <object id="adminManager" type="BusinessLogicLayer.Admin.AdminManager, BusinessLogicLayer">    <property name="Dao" ref="adminDao"/>  </object></objects>

C# code
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">  <object id="adminDao" type="DataAccessObjects.Admin.AdminDao,DataAccessObjects">    <property name="AdoTemplate" ref="adoTemplate"/>  </object></objects>

C# code
<?xml version="1.0" encoding="utf-8" ?><!--用于配置Spring,数据库连接等--><objects xmlns="http://www.springframework.net"         xmlns:db="http://www.springframework.net/database">  <db:provider id="dbProvider" provider="SqlServer-2.0"               connectionString="Data Source=.;Initial Catalog=RedUnicorn;Integrated Security=False;User ID=sa;Password=123;"/>  <object id="adoTemplate" type="Spring.Data.Generic.AdoTemplate, Spring.Data">    <property name="DbProvider" ref="DbProvider"/>    <property name="DataReaderWrapperType" value="Spring.Data.Support.NullMappingDataReader, Spring.Data"/>  </object>  <!--事务管理器-->  <object id="transactionManager"  type="Spring.Data.Core.AdoPlatformTransactionManager, Spring.Data">    <property name="DbProvider" ref="DbProvider"/>  </object>  <!--事务切面-->  <object id="txProxyTemplate" abstract="true" type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject, Spring.Data">    <property name="PlatformTransactionManager" ref="transactionManager"/>    <property name="TransactionAttributes">      <name-values>        <add key="Save*" value="PROPAGATION_REQUIRED"/>        <add key="Delete*" value="PROPAGATION_REQUIRED"/>        <add key="Get*" value="PROPAGATION_REQUIRED,readOnly"/>      </name-values>    </property>  </object></objects> 


以上4个部分是在webconfig中引入的xml文件

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Spring.Context.Support;namespace AdminApplication.AdminManager{    public partial class ManagerUser : Spring.Web.UI.Page    {        public Business.Impl.Admin.IAdminManager AdminManager { get; set; }        protected void Page_Load(object sender, EventArgs e)        {            AdminUserListDataBind();        }        private void AdminUserListDataBind()        {            AdminUserList.DataSource = AdminManager.GetList();            AdminUserList.DataBind();        }           }}

但是在使用的时候,这里的对象AdminManager 一直是空的,但是之前的业务逻辑和DAL层都已经注入成功了
怎么能将对象注入到aspx的页面中呢?

[解决办法]
IApplicationContext ctx = ContextRegistry.GetContext();
AdminManager x = (AdminManager) ctx.GetObject("adminManager");
可以吗
[解决办法]
你可以参考
spring.net依赖注入到Web页面 
http://blog.csdn.net/xueshanzhisheng/article/details/4349205

http://www.cnblogs.com/blusehuang/archive/2009/01/21/1217628.html

热点排行