小テストテストプログラムは、顧客と各顧客に特別なポイントのバランスがあるストアをベースにしています。今のところ私は一定の数の顧客、例えば3人に集中したいと思っています。問題点私はそれらの顧客をどこに創り出し、サービスの機能からどのようにアクセスするのでしょうか?私はサービスのmain()
の内部に顧客の配列を作成することを考えていたので、後でクライアントが利用できるようになりましたが、それは良い考えですか? WCF
に非常に新鮮で、そのようなものを実装する方法を示す例は見つかりませんでした。カスタムクラスオブジェクトにアクセスしてWCFサービスからデータを変更する方法は?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.ServiceModel.Description;
namespace StoreService
{
public class Program
{
static void Main(string[] args)
{
Uri baseAddress = new Uri("http://localhost:6112/StoreService");
ServiceHost host = new ServiceHost(typeof(Store), baseAddress);
try
{
host.AddServiceEndpoint(typeof(IStore), new WSHttpBinding(), "Store");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate the service.");
Console.WriteLine();
Console.ReadLine();
host.Close();
}
catch (CommunicationException ce)
{
Console.WriteLine("An exception occured: {0}", ce.Message);
host.Abort();
}
}
}
[ServiceContract(Namespace="http://StoreService")]
public interface IStore
{
[OperationContract]
void AddPoints(string accNum, double points);
[OperationContract]
void SubtractPoints(string accNum, double points);
[OperationContract]
int CustomerPoints(string accNum);
}
[DataContract]
public class Customer
{
private string accountNumber;
private string name;
private double points;
[DataMember]
public int AccountNumber
{
get { return accountNumber; }
set { accountNumber = value; }
}
[DataMember]
public string Name
{
get { return name; }
set { name = value; }
}
[DataMember]
public int Points
{
get { return points; }
set { points = value; }
}
}
public class Store : IStore
{
public void AddPoints(string accNum, double points)
{
//Add points logic
}
public void SubtractPoints(string accNum, double points);
{
//Substract points logic
}
public int CustomerPoints(string accNum)
{
//Show points
}
}
}
うーん:
これはテストされていない、私の頭の上からで、マイクロソフトの例は、2つの新しいクラスを追加し、あなたに例えばブライアン
によって投稿このようなものが表示されます。興味深いですね。お客様のIDにはGuidを使用する必要がありますか?私は私のソースコードごとに文字列を使う予定でした。 – Bob
こんにちはボブ、まったくではなく、あなたの顧客IDに好きなものを使うことができます。これは単なる例に過ぎず、クラスを少し深く見ることができます。 – Jeggs
ありがとう! – Bob