C#相談室

このエントリーをはてなブックマークに追加
224デフォルトの名無しさん
WebServiceってバイナリでの配布はできないのでしょうか?
ソース丸見えのasmxファイルでしか人に配れないというのも何だか問題な気がします。
225名無しさん♯:2001/04/17(火) 01:28
>>224
だいじょうぶ。ちゃんとバイナリで再利用できるよん♪

1. WebServiceのC#のコードの部分をDLL化する。

  using System.Web.Services;

  public class HelloService
  {
    [ WebMethod (MessageName="hello") ]
    public string SayHello() {
      return "Hello World!!";
    }
  }

  // csc /t:library /r:System.Web.Services.dll hoge.cs

2. IISの仮想ディレクトリのルートに、binって名前のディレクトリを作って、
  そこにWebServiceのDLLを置く。

3. そうすると、.asmxの中身はたった1行でOK。ロジックのソースは完全に隠せるよ♪

  <%@ WebService Class="HelloService" %>

つまり、バイナリで配布したら、DLLをbinに置いてもらって、
あとは.asmxを1行だけ書いてもらうということ。
226名無しさん♯:2001/04/17(火) 01:28
ちなみに、ASP.NETのCode-behindでもこの方法が使えるよ。

PageのサブクラスをあらかじめDLL化してbinに置いとけば、
ソースがなくてもInherit可能。

  <%@ Page Inherits="HogePage" %>

ASP.NETはタグとロジックを完全分離できるから、本当に柔軟性が高いよん♪