2016-04-12 57 views
1

WCFサービスを使用してWebアプリケーションを開発しています。サービスを作成してクライアントアプリケーションでそのサービスを使用しました。 txtファイルをアップロードした後filedsに一致パラメータhttp://tempuri.org/:labelをシリアル化しようとしたときにエラーが発生しました

は、私はパラメータhttp://tempuri.org/:lblHideをシリアル化しようとしているときにエラーが発生しましたクライアントページで

を、次のエラーを取得しています。 InnerExceptionメッセージが 'ASP.WCFApp_aspx'型のデータ コントラクト名 'WCFApp_aspx:http://schemas.datacontract.org/2004/07/ASP'であるとは限りません。 DataContractResolverの使用を検討するか、または既知のタイプのリストに静的に知られているタイプ(例えば、KnownTypeAttribute属性を使用するか、 DataContractSerializerに渡される既知のタイプのリストに追加するなど)を知らないタイプを追加してください。詳細については、InnerExceptionを参照してください。 ---> System.Runtime.Serialization.SerializationException: 'ASP.WCFApp_aspx'を入力してください。データ契約名が 'WCFApp_aspx://schemas.datacontract.org/2004/07/ASP'であるとは限りません。 DataContractResolverの使用を検討するか、または既知のタイプのリストに静的に知られていないタイプの を追加します。たとえば、KnownTypeAttribute属性を使用するか、DataContractSerializerに渡される既知のタイプのリスト に追加します。

参照してください以下のコード、 WCFService.cs:

[OperationContract]

[ServiceKnownType(typeof(string))] 

    [ServiceKnownType(typeof(List<string>[]))] 

    string KeyFieldsMatch(List<string>[] lst, Label lblHide, string strConn); 

IWCFService.svc.cs:

public class WCFService: IWCFService 

    { 

    public string KeyFieldsMatch(List<string>[] lst, Label lblHide, string strConn) 

    { 

     try 

     { 

      return objBAL.KeyFieldsMatch(lst, lblHide, strConn); 

     } 

     catch 

     { 

      throw new FaultException("Error...."); 

     } 

    } 
} 

クライアント:

WCFService.WCFServiceClient objBAL = new WCFService.WCFServiceClient(); 

protected void btnSubmit_Click(object sender, EventArgs e) 

    { 

      List<string>[] list = new List<string>[2] 

string[][] lst = new string[2][]; 

lst = list.Select(a => a.ToArray()).ToArray(); 

      string KeyFieldsMatch =string.empty; 

    KeyFieldsMatch = objBAL.KeyFieldsMatch(lst, lblHide, strConn);--Error coming at this location. 
} 

basicHttpBindingを使用しています

助けていただければ幸いです。

答えて

1

UIオブジェクトをWCFサービスに渡しています。あなたがする必要があるのは、完全なラベルではなく、文字列としてのラベルのテキスト値を渡すことです。なぜなら、それは過剰な操作と悪い操作なのでです。必要なものだけを送信してください。

関連する問題