2010-11-18 8 views
0

私は質問を完全に私の問題に対処していない謝罪する必要があります。これは、C#WebサービスにUDTオブジェクトを渡すことを扱うC#の問題です。クライアント側はWindows Mobileフォームアプリケーションです。変数/プロパティ名に使用できる文字数に制限はありますか?

私は現在自分で定義したUDTを持っています(変数schedulerRecordCountという名前の変数はSchedulerRecordCountです)。この新しいメンバを追加する前に、このオブジェクトのインスタンスを問題なくWebサービスメソッドに渡すことができました。新しいメンバーを追加した後、自分のウェブメソッドから回答を得ることができませんでした。 webmethodを呼び出してオブジェクトを渡した後、「トランスポート接続から読み取ることができません」という例外が発生します。

私はトラブルシューティングに多くのことを試みました。最後の努力で、変数名をschedRecCntに、プロパティをSchedRecCntに短くしました。これはトリックでした。注記として、このUDTの他のメンバーはすべてString型です(新しいメンバーも同様です)。

UDTの内部でWebメソッドに渡されるときに変数が持つことができる文字数の制限について知っている人はいますか?

+0

これは変数/プロパティ名で似ていると確信しています:http://stackoverflow.com/questions/425988/maximum-method-name-length – SwDevMan81

+0

そこにある名前の最大値は511文字です。 schedulerRecordCount.Lengthの値は20です...私はあなたのコメントに従っていません、もしあなたが少し具体的であれば気にしないでしょうか? – AndHeCodedIt

+1

私は、変数/プロパティ名の長さが非常に大きくなければならないと言っています(SchedulerRecordCountは間違いなく許容されます)。他にも何か問題があるはずです。 – SwDevMan81

答えて

3

識別子の長さにはいくつかの制限がありますが、確かにそれに近いものではありません。私は正確な制限は分かりませんが、おそらく1000文字ほどです。

ただし、返されるメッセージの合計サイズの上限に達している可能性があります。これはプロパティ名をどのように短縮するかに合っており、それによってメッセージの全長も短くなります。

クライアントのweb.configにあるSOAPバインディングの設定で、MaxReceivedMessageSizeプロパティの値を確認し、必要に応じて値を増やします。

+0

MSDNでこのプロパティを検索すると、このプロパティは.NET Framework 3.0から4.0ではなく2.0でのみ使用できます。私のWebサービスとクライアントはどちらも2.0フレームワーク上に構築されています。他のアイデア? – AndHeCodedIt

2

あり、C#の仕様によって課される制限はありませんが、Visual StudioのIDEには、C#とVB.Net(黒以外の文字を残す)で1023個の文字にのみ

511文字を色付けします。

関連する問題