特定の名前空間に Web サービスがあります。それを と呼びましょうMyNamespace
。これは、コード ビハインドに webmethods を含む通常の Web サービスです。これらの Web メソッドで使用されるすべての種類のクラスを含む追加の .cs ファイルもあります。ここまでは順調ですよね?
次に、テストのみに使用される追加の Web サービスがあります。コードビハインドはなく、そのコードは .asmx ファイルに直接含まれているため、何も再構築せずにサーバーにすばやくアップロードできます。このテスト Web サービスはMyNamespace
、最初の段落で説明した Web サービスと同じ名前空間にあり、同じプロジェクトにもあります。の内部メンバーにアクセスしようとするまで、それはうまく機能しますMyNamespace
。それはできません。それらは非公開であるかのように見えません。
ここからナンセンスなことを書き始めるかもしれませんので、必要に応じて訂正してください。少し調べてみましたが、適切なコードビハインドのない.asmxは実行時にコンパイルされ、適切なアセンブリの一部ではないため、これは「意図された」ようです。内部メンバーはアセンブリ内でのみ使用できるため、.asmx コードで使用できないのはまったく問題ありません。私の質問は、私のコードを .asmx.cs 分離コード ファイルに移動せずに、何らかの方法でこれらのメンバーにアクセスできるかということです。