天天看點

建立WCF服務

[1]建立控制台項目

[2]添加=>建立項,選擇“WCF服務”,并命名檔案名,即服務類名。如:“MyFirstService.cs”,VS工具将會建立兩個檔案:MyFirstService.cs和IMyFirstService.cs

MyFirstService.cs檔案内容如下:

namespace MyWCF
{
    // 注意: 使用“重構”菜單上的“重命名”指令,可以同時更改代碼和配置檔案中的類名“MyFirstService”。
    public class MyFirstService : IMyFirstService
    {
        public string GetName(int No)//自己添加的
        {
            return "hello world"+No.ToString();
        }
    }
}      

IMyFirstService.cs檔案内容如下:

namespace MyWCF
{
    // 注意: 使用“重構”菜單上的“重命名”指令,可以同時更改代碼和配置檔案中的接口名“IMyFirstService”。
    [ServiceContract]
    public interface IMyFirstService
    {
        [OperationContract]
        string  GetName(int No);
    }
}      

在工程管理器下找到app.config檔案,會看到比原來多出一些内容,如下:

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="">
                    <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service name="MyWCF.MyFirstService"><!--這裡是ABC-->
                <endpoint address="" binding="basicHttpBinding" contract="MyWCF.IMyFirstService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:8733/theService/" /><!--這裡可以修改-->
                    </baseAddresses>
                </host>
            </service>
        </services>
    </system.serviceModel>      

編譯工程,以管理者運作生成的exe檔案。

[3]調用WCF方法

(1)首先建立一個控制台程式

(2)然後右鍵項目菜單:添加=》服務引用,彈出服務引用視窗

(3)在服務引用位址中,輸入WFC配置檔案中的:http://localhost:8733/theService/,再點”轉到“

(4)命名空間文本框中,輸入服務名稱,内容随意。如Scale3dcWCF

(5)在入口函數中,添加調用代碼,如下:

namespace testWCF
{
    class Program
    {
        static void Main(string[] args)
        {//Scale3DCWCF即為引入時命名的服務名
            Scale3DCWCF.MyFirstServiceClient client = new Scale3DCWCF.MyFirstServiceClient();
            string  strName =  client.GetName(2190);
            Console.Write(strName);

            Console.ReadLine();
        }
    }
}      

繼續閱讀