Visual Studio 2008からRDSサービスを作成(4)(失敗編2)
前回の「Visual Studio 2008からRDSサービスを作成(4)(失敗編)」からの続きです。
これも失敗例ですので、ご注意下さい。
- AddPortTest.csに追加したReplaceのハンドラ(修正前)
/// <summary> /// Replace Handler /// </summary> /// <param name ="replace"></param> /// <reteuns></returns> [ServiceHandler(ServiceHandlerBehavior.Exclusive)] public virtual IEnumerator<ITask> ReplaceHandler(Replace replace) { _state = replace.Body; replace.ResponsePort(DefaultReplaceResponseType.Instance); yield break; }
- コンパイルエラー
-
- 73行目(_state = replace.Body;の部分)
型'Microsoft.Dss.ServiceModel.Dssp.GetRequestType'を型'AddPortTest.AddPortTestState'に暗黙的に変換できません。
-
- 74行目(replace.ResponsePort(DefaultReplaceResponseType.Instance);の部分)
実行不可能なメンバ
'Microsoft.Dss.ServiceModel.Dssp.DsspOperation>.ResponsePort'をメソッドのように使用することはできません。
73行目は型変換に問題があるようだったので、まずはreplace.Bodyの型を調べてみました。
- GetRequestType DsspOperation
>.Body
とGetRequestType型のようです。
そこで、AddPortTestState型のものがないか探してみたところ、
- PortSet
DssOperation >.ResponsePort
ResponsePortが一番近そうだったので、以下のように書き換えてみました。
- 修正後
/// <summary> /// Replace Handler /// </summary> /// <param name ="replace"></param> /// <reteuns></returns> [ServiceHandler(ServiceHandlerBehavior.Exclusive)] public virtual IEnumerator<ITask> ReplaceHandler(Replace replace) { _state = replace.ResponsePort; replace.ResponsePort(DefaultReplaceResponseType.Instance); yield break; }
そして、再度ソリューションのビルドをしてみたところ、73行目のエラーが消えました。
が、まだ74行目が残ってます。。。
-
- 74行目(replace.ResponsePort(DefaultReplaceResponseType.Instance);の部分)
実行不可能なメンバ
'Microsoft.Dss.ServiceModel.Dssp.DsspOperation>.ResponsePort'をメソッドのように使用することはできません。
次回へ続く。。。