2016-04-24 10 views
1

私のwcfサービスで問題が発生しました。wcfサービスリファレンスで代理人を使用

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together. 
[ServiceContract] 
public interface ISahandService 
{ 
    [OperationContract] 
    bool uRunCommand(byte[] abyJson, ref byte[] abyData); 

    [OperationContract] 
    bool uFillSaatDic(ref List<DeviceInfo> liDev, ref string sErr); 

    [OperationContract] 
    void uSetDelegates(dlgDeviceConnectFunc uDeviceConnect, dlgServerBusyFunc uServerBusyFunc, 
     dlgAminConnection uAminFunc, dlgFingerUI uFingerUI, dlgOnFinger uOnFinger); 

    [OperationContract] 
    CompositeType GetDataUsingDataContract(CompositeType composite); 

    // TODO: Add your service operations here 
} 

とエラーになります:

は、サービスの追加に失敗しました

は、ここに私のサービス・インターフェース・クラスです。サービスメタデータにアクセスできない可能性があります。サービスが実行中で、メタデータが公開されていることを確認してください。

C:\ Users \ユーザー管理\のAppData \ローカル\ Tempに\テストクライアントプロジェクト\ 12.0 \ 71e9b3ab-7556-4f8d-87c7-c8bae5868d3a \ Client.cs(391,26):エラーCS0644:「SahandCL。 dlgDeviceConnectFunc 'は特別なクラス' System.MulticastDelegate 'から派生することはできません c:\ Users \ Admin \ AppData \ Local \ Temp \ Testクライアントプロジェクト\ 12.0 \ 71e9b3ab-7556-4f8d-87c7-c8bae5868d3a \ Client.cs(403,26) :エラーCS0644: 'SahandCL.dlgServerBusyFunc'は特別なクラス 'System.MulticastDelegate'から派生することはできません c:\ Users \ Admin \ AppData \ Local \ Temp \ Testクライアントプロジェクト\ 12.0 \ 71e9b3ab-7556-4f8d-87c7-c8bae5868d3a \ Client .cs(415,26):エラーCS0644: 'SahandCL.dlgAminConnection'は、特別なクラス 'System.MulticastDelegate'から派生することはできません。 c:\ Users \ Admin \ AppData \ Local \ Temp \ Testクライアントプロジェクト\ 12.0 \ 71 CS5646:エラーCS0644: 'SahandCL.dlgFingerUI'は特別なクラス 'System.MulticastDelegate'から派生することはできません。 c:\ Users \ Admin \ AppData \ Local \ Temp e9b3ab-7556-4f8d-87c7-c8bae5868d3a \ Client.cs(427,26) \テストクライアントプロジェクト12.0 \ 71e9b3ab-7556-4f8d-87c7-c8bae5868d3a \ \ Client.cs(439,26):エラーCS0644: 'SahandCL.dlgOnFinger' は、特別なクラスから派生することはできません 'System.MulticastDelegate'

問題は次のとおりです。サービス参照で代理人を使用するにはどうすればよいですか?

+1

WCFはデリゲートタイプをシリアル化できません。契約で使用されるすべての型は、Data ContractシリアライザまたはXmlシリアライザを使用してシリアライズ可能でなければなりません。 – ajawad987

+0

私はリアルタイムのイベントをいくつか持っているデバイスを持っています。私はサービスレイヤーでそれを使いたいと思っています。私はそのイベントを引き起こすことができます。何ができますか? – HamidEbr

+0

@HamidSOS、代理人がやっていることをあなたのクライアントがサービス上でオペレーションを呼び出させるのはなぜですか? – Crowcoder

答えて

1

WCF契約の定義時には、既知の型のみを使用できます。

関連する問題