Tôi đang sử dụng ứng dụng khách dịch vụ web bên thứ ba (được tạo bằng cách sử dụng "Thêm tham chiếu dịch vụ") để truy xuất một số dữ liệu.Cách sắp xếp một đối tượng thành chuỗi xml với tiêu đề
Sau khi điền các đối tượng dịch vụ web với dữ liệu thích hợp chúng ta cần thêm một số dữ liệu để các tiêu đề (mật khẩu mã hóa và một số dữ liệu được xác định trước kia)
Sau đó, chúng ta đang serializing mọi yêu cầu gửi đến dịch vụ web, sử dụng tiêu chuẩn .net XmlSerializer
.
Tuy nhiên, trong kết quả của việc tuần tự hóa, tôi không thấy tiêu đề của yêu cầu. Tôi đã tìm kiếm một thời gian dài và không thể tìm thấy bất kỳ cách nào để "in" chúng là tốt.
Dưới đây là một số mã ví dụ:
Ibooking proxy = new BookingManager();
/* Init proxy Data...*/
GetAvailabilityRequest request = new GetAvailabilityRequest();
/*Fill more data on the request...*/
GetAvailabilityResponse response = proxy.GetAvailability(request); //Send request to the web service
var xmlString2 = response.Serialize(); //only body, no headers in the XML
/* Extension class to Serialize any object */
public static class ExtensionUtil
{
public static string Serialize<T>(this T value)
{
try
{
XmlSerializer xmlserializer = new XmlSerializer(typeof(T));
var stringWriter = new StringWriter();
using (var writer = XmlWriter.Create(stringWriter))
{
xmlserializer.Serialize(writer, value);
return stringWriter.ToString();
}
}
catch (Exception ex)
{
throw new Exception("An error occurred", ex);
}
}
}
tôi đã loại trừ mã sẽ thêm nhiều dữ liệu hơn để yêu cầu vì nó dài và phức tạp (cần phải thực hiện IEndpointBehavior
và IClientMessageInspector
để "bắt" các yêu cầu trước khi chúng tôi gửi nó) - nhưng hiện nay như một workaround tôi đặt một BreakPoint trên đối tượng tin nhắn và chuyển đổi nó thành chuỗi bằng cách sử dụng Visual Studio. Bằng cách này, tôi thấy các tiêu đề nhưng rõ ràng đây là thực hành không tốt vì tôi muốn nó được tự động hóa trong tuần tự hóa.
Bạn có muốn xem tiêu đề trên Yêu cầu hoặc phản hồi không? – sachin
yêu cầu là quan trọng hơn, nhưng kể từ cuối cùng tôi đang serializing chúng cả (yêu cầu và phản ứng xml được tạo ra) tôi muốn khả năng nhìn thấy tiêu đề cho cả hai người trong số họ – Dardar
Không thực sự rõ ràng những gì đang xảy ra. Nhưng tôi có thể cho bạn biết XmlSerializer là rác. Hãy thử sử dụng NetDataContractSerializer, và chắc chắn rằng lớp được serialized được đánh dấu với DataContract và các thuộc tính được serialized được đánh dấu với các thuộc tính DataMember. – Will