0
在一個文本框,你可以輸入字符串(數字),像這樣: 78787.8888 8777.99999分割字符串,並保存爲XML
和值必須被保存這樣的:
<ipaddresses>
<ipaddress>78787.8888 </ipaddress>
<ipaddress>8777.99999 </ipaddress>
</ipaddresses>
我使用這種序列化方法,像這樣:
internal string Serialize(EditProductModel model) {
if (this.ResidentsOnly == false && this.MinimumAge == 0)
return model.Product.AuthenticationSettings;
XElement settings = XElement.Parse(model.Product.AuthenticationSettings ?? "<settings/>");
if (settings == null || settings.Attribute("authenticationrequired") == null || settings.Attribute("authenticationrequired").Value != "true")
return model.Product.AuthenticationSettings;
settings.Add(
new XElement("preconditions",
new XElement("residentsonly", this.ResidentsOnly ? "1" : "0"),
new XElement("minimumage", this.MinimumAge),
new XElement("redirecturl", this.RedirectUrl),
new XElement("ipaddress", this.IpAddress)
)
);
XElement ipaddresses = new XElement("ipaddresses");
string[] lines = ipaddresses.Value.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
foreach (var item in lines) {
lines.Select(ip=> new XElement("item", ip)).ToString();
}
settings.Add(ipaddresses);
return settings.ToString();
}
但是每次行都是「」。
,這是propertie:
[Display(Name = "PreConditionIpAddress", ResourceType = typeof(Resources.Entity.Product))]
public string[] IpAddress { get; set; }
謝謝。
奧凱,我現在有這樣的:
XElement ipaddresses = new XElement("ipaddresses");
string[] lines = IpAddress.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
foreach (var item in lines) {
// lines.Select(ip => new XElement("ipaddress", ip)).ToString();
settings.Add(new XElement("ipaddress", item));
}
,我也得到:
<ipaddress>78787.8888 </ipaddress>
<ipaddress>8777.99999 </ipaddress>
但如何得到這樣的:
<ipaddresses>
<ipaddress>78787.8888 </ipaddress>
<ipaddress>8777.99999 </ipaddress>
</ipaddresses>
謝謝
步驟槽它在一個調試器,ITLL迅速告訴你是哪裏的問題 –
存儲在'ipaddresses'價值在哪裏?你需要傳遞給'XElement'的構造函數 –
Hi Ned。我改變了帖子。我添加了屬性 – InfinityGoesAround