2017-04-04 9 views
2

WCFサービスがあり、そのメソッドを使用する必要があります。WCF回答処理С#

メソッドには、string、DateTime、DateTimeの3つのパラメータが必要です。

だから、私のコードは次のようである:方法の

ServiceReference.LogsServiceClient myclient; 
myclient = new ServiceReference.LogsServiceClient(); 
var response = myclient.GetHotPeriodLogs("somestring", dtFrom, dtTo); 

========

返されるデータ型は、いくつかの配列である(ServiceReference.TechLog [])

それ答えはjsonの応答の配列であるようです。

だから、私は例外が「({「:」名前値 "}現在のJSONオブジェクトなどをデシリアライズできない」している)タイプに「System.Collections.Generic.List`1"

私はしたいとすべきです質問すると、答えを扱う方法は何ですか? さらに、データの各文字列をMSSQL DBに挿入する必要があるため、データのセットを取得する必要があります。それで、私は何をしなければなりませんか?

申し訳ありませんが、私はこの件で初めてです。

+0

したがって、あなたのメソッドは配列を返すが、あなたの応答はJSONで返されるはずです。あなたは何とかNewtonsoftのようなライブラリを使ってそれを変換する必要があります。またはJSONを自分で解析してください。 – user3685285

+0

newtonsoftを使った例は? –

+0

コードをもう少し詳しく書くことはできますか?配列が必要なメソッドで応答を返しますか?メソッドのシグネチャは何ですか? – user3685285

答えて

0

ok。最初に私たちは、これはあなたのServiceReference.TechLogオブジェクトであると仮定してみましょう:私たちが必要とするすべてだ

public static T JsonDeserializer<T>(string jsonString) 
{ 
    var settings = new JsonSerializerSettings { DateFormatHandling=DateFormatHandling.MicrosoftDateFormat }; 
    var instance = JsonConvert.DeserializeObject<T>(jsonString, settings); 
    return instance; 
} 

public class TechLog 
{ 
    public DateTime CreationDate { get; set; } 
    public string Email { get; set; } 
    public bool IsApproved { get; set; } 
} 

は、今、私たちは、このようなJSON deserilzer方法が必要になります。

var x = JsonDeserializer<TechLog[]>(response); 
+0

@ОлегСидоров私はあなたを助けることができてうれしいです。答えとしてマークしてください。 – David