0

これが私の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
{
    ......
}

よろしくお願いします!

4

1 に答える 1

0

さて、私は高低を検索しました。最終的に、サービス参照でインターフェイスを使用する代わりに、シリアル化可能な具象クラスを使用するようになりました。

于 2012-12-12T19:22:50.410 に答える