Khi tôi hack qua cơ sở mã của chúng tôi, tôi chỉ nhận thấy chức năng này. Nó chuyển đổi một IDictionary<string, object>
(Paramters - một biến mẫu) thành một chuỗi XML.Thách thức: Bạn có thể làm cho chức năng đơn giản này thanh lịch hơn bằng cách sử dụng C# 4.0
Điều này chẳng là gì ngoài sự tò mò về phần của tôi :-).
Vì vậy, nó có thể được viết với mã ít hơn rất nhiều bằng cách sử dụng C# 4.0? Quy tắc: không có libs bên ngoài ngoại trừ .Net Framework BCL.
Để làm cho nó trở nên khó khăn hơn, tôi không đặt thông số từ điển đầu vào ở đây, vì bạn có thể làm việc từ mã.
public string ConvertToXml() {
XmlDocument doc = new XmlDocument();
doc.LoadXml("<?xml version='1.0' encoding='utf-8'?><sc/>");
foreach (KeyValuePair<string, object> param in Parameters) {
XmlElement elm = doc.CreateElement("pr");
if (param.Value is int || param.Value is Int32 || param.Value is Int16 || param.Value is Int64) {
elm.SetAttribute("tp", "int");
} else if (param.Value is DateTime?){
elm.SetAttribute("tp", "datetime");
} else {
elm.SetAttribute("tp", "string");
}
elm.SetAttribute("nm", param.Key);
if (param.Value is DateTime?) {
DateTime? dateTime = param.Value as DateTime?;
elm.SetAttribute("vl", dateTime.Value.ToString("o"));
} else{
elm.SetAttribute("vl", param.Value.ToString());
}
doc.FirstChild.NextSibling.AppendChild(elm);
}
return doc.OuterXml;
}
Hãy để tôi thêm một số suy nghĩ khác.
Đối với tôi:
- ít hơn nhưng ngắn gọn là xấu hơn
- loại cũng tốt, nhưng các loại tầm thường dường như có mùi
- tái sử dụng là tốt
Nếu đây là một thách thức bạn nên cung cấp một số tiền thưởng :) – aevanko
Tôi sẽ làm. Tôi không biết cách thêm tiền thưởng ngay từ đầu - tôi nghĩ bạn phải đợi. Tôi làm gì? –
Ah bạn nói đúng, bạn cần chờ 2 ngày. : 0 xấu của tôi.Nhìn về phía trước để xem các giải pháp mọi người đến với^^ – aevanko