2011-01-26 9 views
0

좋은 날,Spring.net에서 구조체 종속성 주입 변환

이 스프링 구성을 구조 맵 구성으로 변환하려면 어떻게해야합니까? 나는이 spring.net 구성을 가지고있다.

<db:provider id="DbProvider" 
     provider="System.Data.SqlClient" 
     connectionString="Data Source=(local);Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/> 

    <object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data"> 
    <property name="DbProvider" ref="DbProvider"/>     
    </object> 

</objects> 

내 변환

For<Spring.Data.Core.AdoTemplate>().Use<Spring.Data.Core.AdoTemplate>().Configure.WithProperty("DBProvider").EqualTo(??????); 

어떻게/어디에서 DBProvider 속성의 인스턴스를받을 수 있나요,이처럼? 봄. 닷넷 그것은 xml 태그에 정의되어 있지만 어떻게 구조지도에서 이루어집니다 모르겠다.

아무도 동일한 문제가 발생하여 해결책을 찾았습니까? 도와주세요.

답변

1

구조용 맵을 사용한 적이 있지만 Spring.NET 제공 이름 "System.Data.SqlClient"는 Spring.NET 1.3.1에서 Spring.NET 소스 코드에서 사용할 수있는 아래에 게시 된 xml 구성에 매핑됩니다. 필요에 따라 정보 조각을 추출 할 수 있습니다 (아마도 유형 이름은 찾고있는 것입니다).

<object id="SqlServer-2.0" type="Spring.Data.Common.DbProvider, Spring.Data" singleton="false"> 
     <constructor-arg name="dbMetaData"> 
      <object type="Spring.Data.Common.DbMetadata"> 
       <constructor-arg name="productName" value="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V2.0" /> 
       <constructor-arg name="assemblyName" value="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="connectionType" value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="commandType" value="System.Data.SqlClient.SqlCommand, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="parameterType" value="System.Data.SqlClient.SqlParameter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="dataAdapterType" value="System.Data.SqlClient.SqlDataAdapter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="commandBuilderType" value="System.Data.SqlClient.SqlCommandBuilder, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="commandBuilderDeriveParametersMethod" value="DeriveParameters"/> 
       <constructor-arg name="parameterDbType" value="System.Data.SqlDbType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="parameterDbTypeProperty" value="SqlDbType"/> 
       <constructor-arg name="parameterIsNullableProperty" value="IsNullable"/> 
       <constructor-arg name="parameterNamePrefix" value="@"/> 
       <constructor-arg name="exceptionType" value="System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
       <constructor-arg name="useParameterNamePrefixInParameterCollection" value="true"/> 
     <constructor-arg name="useParameterPrefixInSql" value="true"/>  
       <constructor-arg name="bindByName" value="true"/> 
       <!-- this is only true for .net 1.1 kept it here just in case we want to revert back to this strategy for 
      obtaining error codes--> 
       <constructor-arg name="errorCodeExceptionExpression" value="Errors[0].Number.ToString()"/> 

     <!-- TODO select form system db all errors that have 'incorrect syntax' at the start of the error string--> 
     <property name="ErrorCodes.BadSqlGrammarCodes"> 
      <value>156,170,207,208</value> 
     </property> 
     <property name="ErrorCodes.PermissionDeniedCodes"> 
      <value>229</value> 
     </property> 
     <property name="ErrorCodes.DataIntegrityViolationCodes"> 
      <value>544,2627,8114,8115</value> 
     </property> 
     <property name="ErrorCodes.DeadlockLoserCodes"> 
      <value>1205</value> 
     </property> 
      </object> 
     </constructor-arg> 

    </object> 
+0

감사합니다. 나는 이것에 대해 살펴볼 것입니다. –