Là một đặc biệt, và giải pháp trường hợp cụ thể rất, nếu bạn tình cờ được làm việc trong một môi trường ASP.NET sử dụng công cụ Razor, trong một CSHTML nộp bạn có thể:
Func<MyType, HelperResult> xml = @<root>
<item>@(item.PropertyA)</item>
<item>@(item.PropertyB)</item>
<item>@(item.PropertyC)</item>
</root>;
với việc bổ sung một phương pháp khuyến nông:
public static XDocument ToXDocument<T>(this Func<T, HelperResult> source, T item)
{
return XDocument.Parse(source(item).ToHtmlString());
}
bạn có thể sau đó:
XDocument document = xml.ToXDocument(new MyType() {
PropertyA = "foo",
PropertyB = "bar",
PropertyC = "qux",
});
Một lần nữa, đặc biệt? Có. Trường hợp cụ thể? Có. Nhưng nó hoạt động, và cung cấp cho Intellisense tuyệt vời. (tâm trí bạn, nó cũng sẽ cung cấp một loạt các cảnh báo tính hợp lệ, tùy thuộc vào xác nhận phiên bản tài liệu)
này là một trong số ít những nhà phát triển ở cả hai ngôn ngữ mà tôi thực sự muốn có một tính năng VB.NET cụ thể. :) Nó làm cho việc viết XML trong VB.NET trở nên sạch sẽ và nhanh hơn rất nhiều so với tuần tự hóa. –