私は「ダブル」UIを必要とするプログラムを書いています。最初のUIはクラシックなWindowsフォームで、2番目のUIはWindowsPhoneデバイスを介したものです。私はWCF(非同期、このデバイスでの唯一の可能性)を使用していますが、非常に奇妙に見える動作があります。ええと、私はWCFの非常に基本的なことなので、何か間違ったことをしているのかもしれません。WCFサーバーコードのより単純なバージョンを作成したので、ここでの問題はより明確になります。
[ServiceContract]
public partial class Form2 : Form
{
int x = 0;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
prova1();
}
private void button2_Click(object sender, EventArgs e)
{
x++;
}
[OperationContract]
void prova1()
{
MessageBox.Show("x = " + x.ToString());
}
button2をクリックしてからbutton1をクリックすると、明らかに「x=1」のポップボックスが表示されます。しかし、Windows Phoneアプリからprova1()を呼び出すと、常に「x=0」になります。これは非常に一般的な動作です。WCFサーバーのコードでオブジェクトをインスタンス化し、外部デバイスを介して呼び出されるWCFサーバーのメソッドでオブジェクトを使用しようとすると、null参照例外が発生します。WCFサーバーコードで行うことはすべて、トラフWCFと呼ばれるメソッド内では完全に見えないようです。この動作を回避する方法はありますか?