データベースのデータを使用してオブジェクトを構築していますが、これまでのところ非常に良好です
public static List<ImageData> GetAllImageData(Guid UserId)
{
List<ImageData> imageDataList = new List<ImageData>();
try
{
SqlCommand cmd = DBHandler.getCommand("sp_Get_AllImagesForWebUser");
DBHandler.AddParameter(ref cmd, "@UserId", UserId);
foreach (DataRow row in DBHandler.ExecuteSP(cmd).Tables[0].Rows)
{
LogWriter.Print("imagedatacontroller() new Guid(row[ImageId].ToString()): " + new Guid(row["ImageId"].ToString()), LogLevel.DEBUG);
imageDataList.Add(
new ImageData(new Guid(row["ImageId"].ToString()), new Guid(row["UserId"].ToString()), row["ImagePath"].ToString(), (int)row["PatientId"], row["BodyPart"].ToString(), row["ReasonForVisit"].ToString(), row["Diagnosis"].ToString(), Convert.ToBoolean(row["ConsentForResearch"]), Convert.ToBoolean(row["ConsentForEducation"]), Convert.ToBoolean(row["ConsentForStorage"]))
);
}
}
catch (Exception e)
{
LogWriter.Print("Exception: ImageDataController->GetAllImageData() " + e, LogLevel.EXCEPTION);
}
return imageDataList;
}
次に、関数を公開し、ImageData のリストを返す Web サービス (.ASMX) があります。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<ImageData> GetImageDataFromUser(string UserId)
{
return ImageDataController.GetAllImageData(new Guid(UserId));
}
しかし問題は、ImageData の 2 つの Guid 属性 (ImageId と UserId) がゼロ値のみの Guid であり、その理由がわかりません。LogWriter を使用して有効で正しい Guid であることを確認しましたが、Web サービスを介してそれを公開しようとするとすぐに、0 のみの GUID になります。
これは私のSOAPがどのように見えるかです
<ArrayOfImageData xmlns="http://172.18.67.166:147/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ImageData>
<ImageId>00000000-0000-0000-0000-000000000000</ImageId>
<UserId>00000000-0000-0000-0000-000000000000</UserId>
<ImagePath>C:\inetpub\wwwroot\Omegapoint\data\UploadedImages\0416f1aa-9b57-4ba8-be54-398ffa9d7139.PNG</ImagePath>
<PatientId>0</PatientId>
<CreationDate>2013-03-17T22:08:10.1964107+01:00</CreationDate>
<Bodypart/>
<ReasonForVisit/>
<Diagnosis/>
<ConsentForResearch>false</ConsentForResearch>
<ConsentForEducation>false</ConsentForEducation>
<ConsentForStorage>false</ConsentForStorage>
</ImageData>
</ArrayOfImageData>
ただし、ImageId は次のようにする必要があります。
0416f1aa-9b57-4ba8-be54-398ffa9d7139
UserId は次のようになります。
4bcd23a9-2815-42ef-b9ea-671b2aa08aa3