[Windows 8 App]WCF數據服務------建立WCF服務

[Windows 8 App]WCF數據服務------建立WCF服務

 

使用WCF通訊服務需要主機城市的支持

本範例使用最常見的ASP.NET網站作為主機程式

在此基礎上添加一個簡單的WCF服務接口做為測試服務器

此服務提供了新聞標題數據用於測試使用

這裡我們就來看一下如何建立這個測試服務器程式

 

首先,新增一個C#的空的Web應用程式

目標框架選擇 .NET Framework 4.5,並命名為 HttpServer

在專案下新增一個 DataClass.cs類別,然後開啟 DataClass.cs 輸入以下程式碼

 

using System.ServiceModel;

namespace HttpServer
{
    [DataContract]
    public class DataClass
    {
        [DataMember]
        public string NewsTime { set; get; }
        [DataMember]
        public string NewsTitle { set; get; }
    }

}

在上面的程式碼中,位此類別新增了兩個屬性NewsTime 和 NewsTitle

定義了DataClass 類別後,在項目中添加一個名為 NewsDataServices 的 WCF服務

在 NewsDataServices.svc 中輸入以下程式碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Activation;

namespace HttpServer
{
    // 注意: 您可以使用 [重構] 功能表上的 [重新命名] 命令同時變更程式碼、svc 和組態檔中的類別名稱 "NewsDataServices"。
    // 注意: 若要啟動 WCF 測試用戶端以便測試此服務,請在 [方案總管] 中選取 NewsDataServices.svc 或 NewsDataServices.svc.cs,然後開始偵錯。
    public class NewsDataServices : INewsDataServices
    {
        public DataClass[] News()
        {
            List<DataClass> newsData = new List<DataClass>()
            {
                new DataClass{NewsTitle="這是新聞一" ,NewsTime="2014-1-10"},
                new DataClass{NewsTitle="這是新聞二" ,NewsTime="2014-1-11"},
                new DataClass{NewsTitle="這是新聞三" ,NewsTime="2014-1-12"},
                new DataClass{NewsTitle="這是新聞四" ,NewsTime="2014-1-13"},
                new DataClass{NewsTitle="這是新聞五" ,NewsTime="2014-1-14"},
            };
            return newsData.ToArray();
        }
    }
}

上面的程式碼中,在 NewsDataServices 類別中添加一個返回值為 DataClass[] 的 News 方法

在方法中建立一個名為 newsData 的List集合,用來儲存新聞標題數據

因為NewsDataServices 類別繼承自 INewsDataServices 介面

所以 NewsDataServices.svc 會自動生成 INewsDataServices.cs 文件

在 INewsDataServices.cs 中輸入以下程式碼

 

using System.ServiceModel.Activation;

namespace HttpServer
{
    // 注意: 您可以使用 [重構] 功能表上的 [重新命名] 命令同時變更程式碼和組態檔中的介面名稱 "INewsDataServices"。


    [ServiceContract]
    public interface INewsDataServices
    {
        [OperationContract]
        DataClass[] News();
    }
}

 

完成以上步驟後,這樣就完成了WCF的服務了!!

執行畫面如下:

365