我有一個Web服務,我打電話來做一個基於電子郵件,名字和姓氏的欺騙檢查。我從業務層返回的對象非常大,並且擁有比我需要傳回的更多數據。在我的web服務函數中,我只想通過JSON傳回10個字段。而不是用這10個字段創建一個新類,我正在尋找循環訪問我的大型返回對象,而只是用這10個字段創建一個匿名對象的列表或數組。C#來自循環的匿名對象匿名數組
我知道我可以做匿名對象的匿名數組手動像這樣
obj.DataSource = new[]
{
new { Text = "Silverlight", Count = 10, Link = "/Tags/Silverlight" },
new { Text = "IIS 7", Count = 11, Link = "http://iis.net" },
new { Text = "IE 8", Count = 12, Link = "/Tags/IE8" },
new { Text = "C#", Count = 13, Link = "/Tags/C#" },
new { Text = "Azure", Count = 13, Link = "?Tag=Azure" }
};
我的問題是,我想這樣做確切的事情,除了通過我的大對象循環和僅拉出場I需要返回。
private class DupeReturn
{
public string FirstName;
public string LastName;
public string Phone;
public string Owner;
public string Address;
public string City;
public string State;
public string Zip;
public string LastModified;
}
[WebMethod]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string CheckForDupes(string Email, string FirstName, string LastName)
{
contact[] list = Services.Contact.GetDupes(Email, FirstName, LastName);
if (list != null && list.Length > 0)
{
List<DupeReturn> dupes = new List<DupeReturn> { };
foreach (contact i in list)
{
DupeReturn currentObj = new DupeReturn
{
FirstName = i.firstname,
LastName = i.lastname,
Phone = i.telephone1,
Owner = i.ownerid.ToString(),
Address = i.address1_line1,
City = i.address1_city,
State = i.address1_stateorprovince,
Zip = i.address1_postalcode,
LastModified = i.ctca_lastactivityon.ToString()
};
dupes.Add(currentObj);
}
return Newtonsoft.Json.JsonConvert.SerializeObject(dupes);
}
}
如果我不需要,我真的不想再增加那些私人課程。任何幫助,將不勝感激。
有什麼反對讓另一個類? – AakashM 2012-04-18 13:04:33
這不是我的應用程序,我只想使用一次性類,因爲它只用於這一個功能,沒有其他地方。 – vipergtsrz 2012-04-20 18:47:07