オブジェクトをアクティブにする方法の設定の変更 / その 2 : 設定 (SingleCall/Singleton) の変更と動作確認
NEC eラーニング事業部
山崎 明子
最終更新日 2005 年 3 月 30 日
| 目標 | オブジェクトをアクティブ化する際の設定 (SingleCall とSingleton) の変更による動作の違いを確認する |
| 使用技術 |
|
| 取り上げるトピックス |
|
| 前提知識 |
|
| 目次 |
|
オブジェクトのアクティブ化の設定を変更し、その動作の違いをチェックします。
.gif)
現在の設定を確認します。
[その 3 : ホストアプリケーションの構築]のステップ4で以下の設定を行ったことを思い出してください。構成ファイル「App.Config」内で、オブジェクトのアクティブ化の設定が "SingleCall"になっています。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall"
type="Step7.MyRemoting.EmployeeFactory, Step7.MyRemoting"
objectUri="Step7Remoting"/>
</service>
: 省略
</application>
</system.runtime.remoting>
</configuration>この場合、クライアントからのメソッド呼び出しの度にインスタンスが生成されます。
.gif)
実行して動作を確認します。
まず、Step7.HostApplication をデバッグ実行し、次に Step7.RemotingClient をデバッグします。手順は、[ソリューションエクスプローラ]で、[Step7.HostApplication]を右クリックし、[デバッグ]-[新しいインスタンスを開始する]をクリックします。次に、[ソリューションエクスプローラ]で、[Step7.RemotingClien]を右クリックし、[デバッグ]-[新しいインスタンスを開始する]をクリックします。
.gif)
このとき、何度[従業員の追加]ボタンをクリックしても、「6 番目の従業員を追加しました。」というメッセージボックスが表示されることを確認します。
.gif)
また、従業員リストの表示をクリックした場合も、最初の5人だけが表示されていることを確認してください。
.gif)
そこで、この設定を変更します。
[Step7.HostApplication]の[App.Config]を以下の通り変更します。(赤色が変更部分です。)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="Singleton"
type="Step7.MyRemoting.EmployeeFactory, Step7.MyRemoting"
objectUri="Step7Remoting"/>
</service>
: 省略
</application>
</system.runtime.remoting>
</configuration>
.gif)
再度、Step2 と同様の動作確認をします。
[従業員の追加]ボタンをクリックすると、1 回目は「6 番目の従業員を追加しました。」と表示され、2回目は「7 番目の従業員を追加しました。」と表示されます。
[従業員リストの表示]ボタンをクリックすると、追加された従業員も常時されることを確認します。
.gif)
[従業員リストの表示]ボタンをクリックすると、追加された従業員も表示されることを確認します。
オブジェクトのアクティブ化の設定を "SingleCall" から "Singleton" に変更したことにより、ひとつのインスタンスが応答していることがわかります。