これをよく見てみると、サーバー側がクライアント側のメソッドを呼び出すときはdynamicを利用した記述をしているにも関わらず、クライアント側はすべて文字列ベースで記述しています。この差が気に入らない。文字列ベースで記述するくらいなら、dynamicで書いたって大差ない。ASP.NET MVCでもViewDataがViewBagになったりしたじゃないか。などと考え、クライアント側もdynamicベースにしてみました。
最後に、このinternalなDynamicHubProxyを生成するための拡張メソッドを定義します。これで準備は整いました。
早速作成したDynamicHubProxyを利用した形に書き換えてみます。強調表示した行が冒頭の記述から変更されている箇所です。文字列指定していた箇所がすべて消えましたね!よかった×2。
この案はポシャったワケですが、これよりもマシな解法は見つけていて業務ではそちらを採用しました。それについては12月23日の担当になっているC# 2013でご紹介できればと思っています。とは言え、消すのも勿体ないので今回のソースはGitHubにアップロードしておきました。
ということで、今回はここまで!次回は@cerberus1974さんです。よろしくお願いします!