假设Solution中有3个Project: TheSolution.Bll, WebAppUsingSpring, WinFormsAppUsingSpring. 其中TheSolution.Bll会被后2者调用, 需要在后2者中使用Spring配置.

  1. 准备

  2. 配置WinFormsAppUsingSpring

  3. 配置WebAppUsingSpring

 

  • 准备

两个项目中都要使用的 Objects.TheSolution.Bll.xml 

Using Spring in Web and WinForms<?xml version="1.0" encoding="utf-8" ?>
Using Spring in Web and WinForms
<objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Using Spring in Web and WinForms
Using Spring in Web and WinForms    
<!--=========================== Biz Objects ===========================-->
Using Spring in Web and WinForms    
<object name="vehicle" type="TheSolution.Bll.BizImpl.Vehicle, TheSolution.Bll">
Using Spring in Web and WinForms        
<property name="Fuel" value="300"></property>
Using Spring in Web and WinForms    
</object>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    
<object name="bike" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
Using Spring in Web and WinForms        
<property name="TargetObject" ref="vehicle"/>
Using Spring in Web and WinForms        
<property name="TargetProperty" value="Bike"/>
Using Spring in Web and WinForms    
</object>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    
<object name="plane" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
Using Spring in Web and WinForms        
<property name="TargetObject" ref="vehicle"/>
Using Spring in Web and WinForms        
<property name="TargetProperty" value="Plane"/>
Using Spring in Web and WinForms    
</object>
Using Spring in Web and WinForms
Using Spring in Web and WinForms
</objects>

 

 

  • 配置WinFormsAppUsingSpring

本项目的 Objects.WinFormsAppUsingSpring.xml 

 

Using Spring in Web and WinForms<?xml version="1.0" encoding="utf-8" ?>
Using Spring in Web and WinForms
<objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Using Spring in Web and WinForms
Using Spring in Web and WinForms    
<!--=========================== UI Objects ===========================-->
Using Spring in Web and WinForms    
<object name="mainForm" type="WinFormsAppUsingSpring.Form1">
Using Spring in Web and WinForms        
<property name="Text" value="UsingSpring : Bike and Plane"></property>
Using Spring in Web and WinForms        
<property name="Bike" ref="bike"></property>
Using Spring in Web and WinForms        
<property name="Plane" ref="plane"></property>
Using Spring in Web and WinForms    
</object>

Using Spring in Web and WinForms
</objects>

 

配置app.config  

Using Spring in Web and WinForms<?xml version="1.0" encoding="utf-8" ?>
Using Spring in Web and WinForms
<configuration>
Using Spring in Web and WinForms    
<configSections>
Using Spring in Web and WinForms        
<sectionGroup name="spring">
Using Spring in Web and WinForms            
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
Using Spring in Web and WinForms            
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
Using Spring in Web and WinForms        
</sectionGroup>
Using Spring in Web and WinForms    
</configSections>
Using Spring in Web and WinForms    
<spring>
Using Spring in Web and WinForms        
<context type="Spring.Context.Support.XmlApplicationContext, Spring.Core">
Using Spring in Web and WinForms            
<resource uri="file://Objects.WinFormsAppUsingSpring.xml" />
Using Spring in Web and WinForms            
<resource uri="file://Objects.TheSolution.Bll.xml" />
Using Spring in Web and WinForms        
</context>
Using Spring in Web and WinForms    
</spring>
Using Spring in Web and WinForms
</configuration>

 

  • 配置WebAppUsingSpring

本项目的 Objects.WebAppUsingSpring.xml  

Using Spring in Web and WinForms<?xml version="1.0" encoding="utf-8" ?>
Using Spring in Web and WinForms
<objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

      <!--=========================== Pages/WebUserControls ===========================-->
Using Spring in Web and WinForms    
<object type="Default.aspx">
Using Spring in Web and WinForms        
<property name="Bike" ref="bike"/>
Using Spring in Web and WinForms        
<property name="Plane" ref="plane"/>        
Using Spring in Web and WinForms    
</object>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    
<object type="WebUserControl1.ascx">
Using Spring in Web and WinForms        
<property name="Bike" ref="bike"/>
Using Spring in Web and WinForms        
<property name="Plane" ref="plane"/>
Using Spring in Web and WinForms    
</object>

Using Spring in Web and WinForms
</objects>

 

配置web.config 

Using Spring in Web and WinForms<?xml version="1.0"?>
Using Spring in Web and WinForms
Using Spring in Web and WinForms<configuration>Using Spring in Web and WinForms
Using Spring in Web and WinForms    <configSections>
Using Spring in Web and WinForms        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
Using Spring in Web and WinForms            <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
Using Spring in Web and WinForms                <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
Using Spring in Web and WinForms                <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
Using Spring in Web and WinForms                    <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
Using Spring in Web and WinForms                    <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
Using Spring in Web and WinForms                    <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
Using Spring in Web and WinForms                    <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
Using Spring in Web and WinForms                </sectionGroup>
Using Spring in Web and WinForms            </sectionGroup>
Using Spring in Web and WinForms        </sectionGroup>
Using Spring in Web and WinForms
Using Spring in Web and WinForms
Using Spring in Web and WinForms        <!--============================ Spring Section ============================-->
Using Spring in Web and WinForms        <sectionGroup name="spring">
Using Spring in Web and WinForms            <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
Using Spring in Web and WinForms        </sectionGroup>

Using Spring in Web and WinForms
Using Spring in Web and WinForms    </configSections>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    <!--============================ Spring Resources ============================-->
Using Spring in Web and WinForms    <spring>
Using Spring in Web and WinForms        <context>
Using Spring in Web and WinForms            <resource uri="~/Objects.WebAppUsingSpring.xml"/>
Using Spring in Web and WinForms            <resource uri="~/Objects.TheSolution.Bll.xml"/>
Using Spring in Web and WinForms        </context>
Using Spring in Web and WinForms    </spring>

Using Spring in Web and WinForms
Using Spring in Web and WinForms
Using Spring in Web and WinForms
Using Spring in Web and WinForms    <appSettings/>
Using Spring in Web and WinForms    <connectionStrings/>

Using Spring in Web and WinForms
Using Spring in Web and WinForms    <system.web>
Using Spring in Web and WinForms        <!-- 
Using Spring in Web and WinForms            Set compilation debug="true" to insert debugging 
Using Spring in Web and WinForms            symbols into the compiled page. Because this 
Using Spring in Web and WinForms            affects performance, set this value to true only 
Using Spring in Web and WinForms            during development.
Using Spring in Web and WinForms        -->
Using Spring in Web and WinForms        <compilation debug="false">
Using Spring in Web and WinForms
Using Spring in Web and WinForms            <assemblies>
Using Spring in Web and WinForms                <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Using Spring in Web and WinForms                <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Using Spring in Web and WinForms                <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms                <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Using Spring in Web and WinForms            </assemblies>
Using Spring in Web and WinForms
Using Spring in Web and WinForms        </compilation>
Using Spring in Web and WinForms        <!--
Using Spring in Web and WinForms            The <authentication> section enables configuration 
Using Spring in Web and WinForms            of the security authentication mode used by 
Using Spring in Web and WinForms            ASP.NET to identify an incoming user. 
Using Spring in Web and WinForms        -->
Using Spring in Web and WinForms        <authentication mode="Windows" />
Using Spring in Web and WinForms        <!--
Using Spring in Web and WinForms            The <customErrors> section enables configuration 
Using Spring in Web and WinForms            of what to do if/when an unhandled error occurs 
Using Spring in Web and WinForms            during the execution of a request. Specifically, 
Using Spring in Web and WinForms            it enables developers to configure html error pages 
Using Spring in Web and WinForms            to be displayed in place of a error stack trace.
Using Spring in Web and WinForms
Using Spring in Web and WinForms        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
Using Spring in Web and WinForms            <error statusCode="403" redirect="NoAccess.htm" />
Using Spring in Web and WinForms            <error statusCode="404" redirect="FileNotFound.htm" />
Using Spring in Web and WinForms        </customErrors>
Using Spring in Web and WinForms        -->
Using Spring in Web and WinForms
Using Spring in Web and WinForms        <pages>
Using Spring in Web and WinForms            <controls>
Using Spring in Web and WinForms                <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms                <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            </controls>
Using Spring in Web and WinForms        </pages>
Using Spring in Web and WinForms
Using Spring in Web and WinForms        <httpHandlers>
Using Spring in Web and WinForms            <remove verb="*" path="*.asmx"/>
Using Spring in Web and WinForms            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
Using Spring in Web and WinForms
Using Spring in Web and WinForms            <!--============================ Spring HttpHandler ============================-->
Using Spring in Web and WinForms            <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>

Using Spring in Web and WinForms        </httpHandlers>



Using Spring in Web and WinForms        <httpModules>
Using Spring in Web and WinForms            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            
Using Spring in Web and WinForms            <!--============================ Spring HttpModule ============================-->
Using Spring in Web and WinForms            <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>

Using Spring in Web and WinForms        </httpModules>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    </system.web>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    <system.codedom>
Using Spring in Web and WinForms        <compilers>
Using Spring in Web and WinForms            <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
Using Spring in Web and WinForms                      type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
Using Spring in Web and WinForms                <providerOption name="CompilerVersion" value="v3.5"/>
Using Spring in Web and WinForms                <providerOption name="WarnAsError" value="false"/>
Using Spring in Web and WinForms            </compiler>
Using Spring in Web and WinForms        </compilers>
Using Spring in Web and WinForms    </system.codedom>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    <!-- 
Using Spring in Web and WinForms        The system.webServer section is required for running ASP.NET AJAX under Internet
Using Spring in Web and WinForms        Information Services 7.0.  It is not necessary for previous version of IIS.
Using Spring in Web and WinForms    -->
Using Spring in Web and WinForms    <system.webServer>

Using Spring in Web and WinForms        <validation validateIntegratedModeConfiguration="false"/>

Using Spring in Web and WinForms        <modules>
Using Spring in Web and WinForms            <remove name="ScriptModule" />
Using Spring in Web and WinForms            <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            
Using Spring in Web and WinForms            
Using Spring in Web and WinForms            <!--============================Spring IIS7===================================-->
Using Spring in Web and WinForms            <!--
Using Spring in Web and WinForms            <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
Using Spring in Web and WinForms            -->
Using Spring in Web and WinForms
Using Spring in Web and WinForms        </modules>


Using Spring in Web and WinForms        <handlers>
Using Spring in Web and WinForms            <remove name="WebServiceHandlerFactory-Integrated"/>
Using Spring in Web and WinForms            <remove name="ScriptHandlerFactory" />
Using Spring in Web and WinForms            <remove name="ScriptHandlerFactoryAppServices" />
Using Spring in Web and WinForms            <remove name="ScriptResource" />
Using Spring in Web and WinForms            <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
Using Spring in Web and WinForms                 type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
Using Spring in Web and WinForms                 type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Using Spring in Web and WinForms            <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Using Spring in Web and WinForms            
Using Spring in Web and WinForms            
Using Spring in Web and WinForms            <!--============================Spring IIS7===================================-->
Using Spring in Web and WinForms            <!--
Using Spring in Web and WinForms            <add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
Using Spring in Web and WinForms            <add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
Using Spring in Web and WinForms            -->
Using Spring in Web and WinForms
Using Spring in Web and WinForms        </handlers>
Using Spring in Web and WinForms    </system.webServer>
Using Spring in Web and WinForms
Using Spring in Web and WinForms    <runtime>
Using Spring in Web and WinForms        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
Using Spring in Web and WinForms            <dependentAssembly>
Using Spring in Web and WinForms                <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
Using Spring in Web and WinForms                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
Using Spring in Web and WinForms            </dependentAssembly>
Using Spring in Web and WinForms            <dependentAssembly>
Using Spring in Web and WinForms                <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
Using Spring in Web and WinForms                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
Using Spring in Web and WinForms            </dependentAssembly>
Using Spring in Web and WinForms        </assemblyBinding>
Using Spring in Web and WinForms    </runtime>
Using Spring in Web and WinForms
Using Spring in Web and WinForms</configuration>

 

Using Spring in Web and WinFormsIApplicationContext springAppCtx = ContextRegistry.GetContext();
Using Spring in Web and WinForms            
this.HotKeyManager = (IHotKeyManager)springAppCtx.GetObject("hotKeyManager");

相关文章: