これが私のwcfデュプレックスサービスコールバックインターフェースです:
public interface ICallback
{
[OperationContract(IsOneWay = true)]
void SendClientCallback(CallbackMessage callbackMessage);
[OperationContract]
void GetTemplateList(ref List<ISpecimenTemplateDescriptor> templateDescriptors, IDrawerLayout drawerLayout);
}
System.Collections.Generic.List型を使用するようにサービス参照を構成しました。これを行うには、サービス参照を右クリックし、[サービスの構成]オプションを選択して、コレクションの種類を変更します。これにより、デフォルトの配列タイプではなく、リストのコレクションタイプを使用するようにサービス参照が構成されました。
サービス参照をコンパイルして更新すると、インターフェイスタイプ「ISpecimenTemplateDescriptor」と「IDrawerLayout」が次のように「System.Object」に変換されます。
void GetTemplateList(ref System.Collections.Generic.List<object> templateDescriptors, object drawerLayout);
インターフェイスオブジェクトがサービス参照でSystem.Objectに変換されるのはなぜですか?
これが私のサービス契約です:
[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(ICallback))]
public interface IWcfService
{
.....
}
これが私のサービスの振る舞いです:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant, UseSynchronizationContext = false)]
public class WcfService : IWcfService
{
......
}
よろしくお願いします!