1

SilverlightとWCFDuplexを使用してターンベースのゲームを作成しようとしています。しかし、私はログインページ以上のことはできませんでした。私は立ち往生しており、あなたの提案/助けのすべてが大いにありがたいです。

私のアーキテクチャに関していくつか質問があります。

  1. (WCFポーリングデュプレックス)GameServiceをIISでホストするのは良い方法ですか、それともコンソールアプリケーションを作成してメソッドを提供する必要がありますか?

  2. ホームページで2つのメソッドを呼び出しています。1番目のLoginAsyncで、1番目が完了すると、2番目のGetLoggedInPlayersAsyncを呼び出します。しかし、私には理解できないエラーが発生しています。

ここに私が今まで持っているもの

[ServiceContract(Namespace="", CallbackContract=typeof(IGameClient), SessionMode=SessionMode.Required)]
// [DeliveryRequirements(RequireOrderedDelivery=true)]
public interface IGameService
{
    [OperationContract(IsInitiating=true)]
    bool Login(Player player);

    [OperationContract(IsInitiating=false)]
    void Logout();

    [OperationContract]
    IEnumerable<Player> GetLoggedInPlayers();
}  

public interface IGameClient
{
    [OperationContract(IsOneWay=true)]
    void NotifyNewUserConnected(Player player);
}

    public Home()
    {
        InitializeComponent();

        client = Helpers.Extensions.GetGameServiceClient();
        this.Loaded += new RoutedEventHandler(Home_Loaded);

        client.GetLoggedInPlayersCompleted += new EventHandler<GetLoggedInPlayersCompletedEventArgs>(client_GetLoggedInPlayersCompleted);
        client.NotifyNewUserConnectedReceived += new EventHandler<NotifyNewUserConnectedReceivedEventArgs>(client_NotifyNewUserConnectedReceived);
        client.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(client_LoginCompleted);

    }

    void Home_Loaded(object sender, RoutedEventArgs e)
    {

        // get the player
        if (Player == null)
        {
            SignInWindow window = new SignInWindow();
            window.Show();

            Player = new Player
            {
                PlayerName = window.txtName.Text
            };

            window.Closed += new EventHandler(window_Closed);


        }
    }
4

0 に答える 0