Я написал методы службы WCF, которые возвращают большие строковые данные, как показано ниже:
string IEmpService.GetEmployeeInfo()
{
StringBuilder strData = new StringBuilder();
//create list of user class
List<Users> lstUsers = new List<Users>();
// populate 10000000 data from DB table at a time
_ods = populateEmpData();// data store to dataset
// convert dataset to list
lstUsers = (from dr in _ods.Tables[0].AsEnumerable()
select new Users
{
UsersID = dr.Field<int>("UsersID"),
UserName = dr.Field<string>("UserName"),
Password = dr.Field<string>("Password")
}).ToList();
// do Serialize of above list and store it to a string builder(this create huge amount of string dada)
strData.Append(Utility.DeSerilization.comonMapper.SerializeList<List<Users>>(lstUsers));
return strData.ToString();
}
Класс пользователя:
[Serializable]
[XmlRootAttribute(ElementName = "Users", IsNullable = false)]
public class Users
{
[XmlElement("UsersID")]
public int UsersID { get; set; }
[XmlElement("UserName")]
public string UserName { get; set; }
[XmlElement("Password")]
public string Password { get; set; }
}
При попытке запустить службу выдает следующее исключение:
strData.ToString ()
'strData.ToString ()' сгенерировал исключение типа 'System.OutOfMemoryException string {System.OutOfMemoryException}
Икогда я добавляю ссылку на службу и показываю данные в виде сетки, она также показывает ошибку.
Как правильно возвращать очень большую строку из службы WCF?