私は以下のC#コードを持っています。私は自分のコードで約20倍も使っています。私はそれを再利用できるサブルーチンにする方法を考え出すことができません。オブジェクトの型のb/cは毎回異なるクラスに基づいています。このC#コードからサブルーチンを作成するにはどうすればよいですか?
コードの目的は、HTTP要求を送信し、JSON応答を収集し、JSON(DataContractを使用)を他の領域で使用するためにクラスにシリアライズすることです。
public static ResponseAttachmentIds MakeRequestAttachmentId(string requestUrl, string strToken)
{
try
{
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
request.Headers["Authorization"] = "OAuth " + strToken;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK)
throw new Exception(String.Format(
"Server error (HTTP {0}: {1}).",
response.StatusCode,
response.StatusDescription));
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(ResponseAttachmentIds));
object objResponse = jsonSerializer.ReadObject(response.GetResponseStream());
ResponseAttachmentIds jsonResponse = objResponse as ResponseAttachmentIds;
response.Close();
return jsonResponse;
}
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
return null;
}
}
この特定の使用のためのDataContractのクラスは、次のとおりです:
public class ResponseAttachmentIds
{
[DataMember(Name = "done")]
public bool attachmentIds_done;
[DataMember(Name = "records")]
public List<ResponseAttachmentId> attachmentIds_records;
}
[DataContract]
public class ResponseAttachmentId
{
[DataMember(Name = "Id")]
public string attachmentId_strId { get; set; }
[DataMember(Name = "Image_Attachment_Id__c")]
public string attachmentId_strAttachmentId { get; set; }
}
問題は、私は約20異なるため、これと同じセットアップをも持っているということである。ここ
は、私が持っているものですクラスResponseImages
、ResponseProperties
、ResponseProperty
など
どのようなヘルプ?
Tony&Paulの回答に加えて、私は 'DataContractJsonSerializer'がかなり制限されていることをお勧めします。あなたはNewtonSoftのJsonシリアライザ(Nugetで見つけることができます)をチェックしたいかもしれません –