どの方向あなたが通信したいと私は非常に明確ではないよ:
- あなたの「サーバー」が保存されています新しい投稿のWinformsのアプリを通知する必要がありますか?
か:
- あなたのWinformsアプリは、新しい投稿について "サーバー" を尋ねます?
"server"はWCFワールドでは特定の役割に使用されているため、引用符で囲みます。最初のオプションを想定し
、あなたがこれを実行する必要があります。
あなたのWinformsアプリはWCFサーバにする必要がある - 例えばサービス契約、運用契約、データ契約を定義し、実装する必要があります。
この場合、投稿サーバーはWCF クライアントになります。投稿を保存/受信するたびに、あなたは通知を送信するためにあなたのWinformsアプリでWCFサービスを呼び出します(これは本当に、この設定では、あなたの役割が予約されている - のWinformsアプリはWCFサーバである)
運営契約に関して - あなたのWinformsアプリは新しい投稿について何を知る必要がありますか?事実、新しい投稿が受信されただけですか?投稿全体の内容、またはその部分だけ?
いずれの場合でも、「投稿サーバー」が呼び出して、関連するすべての情報をWinforms WCFサーバーに渡すことができるWCFサービス上のメソッドを定義する必要があります.2回以上呼び出す必要はありませんただ1つの通知のために。
[ServiceContract]
public interface IPostingService
{
[OperationContract]
void NotifyAboutPosting(Posting post);
}
とあなたのPosting
クラスは、データコントラクト、次のようになります:
だから、サービス契約があるかもしれない
[DataContract]
public class Posting
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public DateTime PostingTimestamp { get; set; }
}
あなたがそれらの二者間で送信する必要があるものは何でも - あなたのデータでそれを定義しますあなたのサービスコールの引数である契約
こんにちは、あなたの返信ありがとうございます。私は上記の私の主な記事を編集しました。私が望むのは、サーバーがメッセージ/イベントの新しい投稿を受け取ったときに、その投稿をキャプチャしてwinformsアプリに送信して、その情報を含む新しい投稿を受け取ったことを通知します。 – Thomas
編集:datacontractスキーマを使用するためにインポートする必要があるものは何ですか? – Thomas
@Thomas: 'DataContract'は' System.Runtime.Serialization'名前空間に存在します –