2009-07-29 6 views
1

PropertyRetrievingFactoryObject를 사용하는 것보다 Spring.NET 구성 파일에서 (Visial Stidio Settings 편집기로 생성 된) 설정을 사용하는 더 좋은 방법이 있습니까 :Spring.NET 설정 파일에서 설정을 사용하는 더 좋은 방법은?

 <object id="myUri" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core"> 
    <property name="TargetObject"> 
     <object type="Properties.Settings, MyAssembly"> 
     </object> 
    </property> 
    <property name="TargetProperty" value="Default.MyUri" /> 
    </object> 

    <object name="..." type="..."> 
    <property name="Uri"> 
     <ref object="myUri" /> 
    </property> 
    </object> 

?

모든 설정에서이 작업을 수행 할 수 있다고 생각하지 않습니다 ...

답변

1

첫째, 왜뿐만 아니라 Spring.NET 구성 파일에 URL을 넣어? 응용 프로그램을 구성하는 여러 가지 방법이 약간 혼란 스러울 수 있습니다. 웹 참조를 추가했기 때문에 Visual Studio에서이 파일을 생성 한 경우 웹 참조의 'URL 동작'속성을 '동적'에서 '정적'으로 변경해야합니다. 그런 다음 App.config/Web.config에서 VS가 생성하는 모든 내용, 설정 파일 및 구성 코드를 제거 할 수 있습니다. 프록시를 구성하려면 컨테이너에 추가하고 DI를 사용하여 URL 속성을 삽입하십시오. http://www.springframework.net/doc-latest/reference/html/objects.html#objects-variablesource

<object type="Spring.Objects.Factory.Config.VariablePlaceholderConfigurer, Spring.Core"> 
    <property name="VariableSources"> 
     <list> 
     <object type="MyCustomImplementationVariableSource, MyAssembly"/> 
     </list> 
    </property> 
</object> 

<object name="..." type="..."> 
    <property name="Uri" value="${MyUri}"/> 
</object> 

MyCustomImplementationVariableSource :

<object name="..." type="..."> 
    <property name="Uri" expression="T(Properties.Settings, MyAssembly).Default.MyUri"> 
</object> 

또 다른 해결책은 IVariableSource 인터페이스로 VariablePlaceholderConfigurer 구성 요소를 사용하는 것입니다

어쨌든

, 당신은 당신이 스프링 표현 언어를 어떻게 원하는 것을 얻을 수 있습니다 (예 : Settings 클래스에서) 원하는 위치에서 변수를 확인하는 IVariableSource의 구현입니다.

  • 브루노
+0

봄 표현은 내가 필요한 것입니다. 훨씬 깨끗해 보인다. – isobretatel