2011-04-06 5 views
6

내가 만든 SoapExtension 하위 클래스를 사용해야하지만이 클래스는 "web.config"파일을 통해서만 초기화 될 수 있습니다 (비록 "app.config"파일을 통해 가능해야한다고 읽었지 만) - 그런 식으로하는 방법을 모르겠습니다.) 문제점 : 프로젝트에 web.config 파일이 없습니다. 그래서 다음과 같은 내용으로 수동으로 하나를 만들어 각 SoapExtension 방법에 distpatched 중단에도 불구하고SoapExtension을로드하기 위해 web.config 파일을 만드는 방법은 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
    <webServices> 
     <soapExtensionTypes> 
     <add type="MyNameSpace.MySoapExtension,MyAssemblyFileName" priority="1"/> 
     </soapExtensionTypes> 
    </webServices> 
    </system.web> 
</configuration> 

는, 아무것도 런타임에 발생하지, 그것이이 NORE라는 초기화되지 않습니다 것 같다 ... (내 SoapService 확인을 초기화하지만,없는 모든 확장 기능).

수동으로 web.config 파일을 만드는 것이 계정에 반영되지 않을 수도 있으므로 내 SoapExtension을 사용하려면 web.config 파일을 갖도록 내 응용 프로그램을 올바르게 구성하는 방법을 궁금합니다. 그것은 내 클래스, processMessage 및 chainStream 물건을 이동하고 초기화해야합니다 ...).

는 : 나는 (또는 참으로 '어디에')에서 Web.config의 내용을 삽입하는 방법을 발견

답변

11

(주이 내가 뭐하는 거지에 대해 정말로 확실하지 않다, 내 사상 첫 SoapExtension 구현 한 것입니다) app.config 파일 :

'ApplicationSettings'및 'userSettings'뒤에 삽입해야했습니다. 이것은 런타임에 오류가 발생하지 않는 유일한 장소입니다 (web.config 파일이 필요 없습니다. 그래도 누군가가 대답을하면 앱을 구성하는 방법을 알고 싶습니다 ...).

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    </configSections> 
    <applicationSettings> 
    </applicationSettings> 
    <userSettings> 
    </userSettings> 
    <system.web> 
     <webServices> 
      <soapExtensionTypes> 
      <add type="MyNameSpace.MySoapExtension,MyAssemblyFileName" priority="1"/> 
      </soapExtensionTypes> 
     </webServices> 
    </system.web> 
    <system.serviceModel> 
     <bindings /> 
     <client /> 
    </system.serviceModel> 
</configuration> 

내 SoapExtension이 올바르게 초기화 된 것 같습니다. 메시지 필터링이 올바르게 작동합니다.

0

@ soleshoe의 의견과 관련하여 내 단위 테스트 (XUnit)를 사용할 수 없습니다. 결국 App.config가 이렇게 보입니다.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    </configSections> 
    <system.web> 
    <webServices> 
     <soapExtensionTypes> 
     <add type="System.Common.SOAPExtensions.TraceExtension, System.Common" priority="1"/> 
     </soapExtensionTypes> 
    </webServices> 
    </system.web> 
</configuration>