Это не дубликат этого question. Я должен сериализовать Свойство, которое является «ReadOnly». Я не могу ничего сделать в этом классе, потому что это класс System.Web.Security.MembershipUser
, конечно, это не запечатанный класс.Сериализация данных только для чтения
[WebGet]
public string GetAllUsers()
{
List<MembershipUser> membershipList = new List<MembershipUser>();
MembershipUserCollection userCollection = Membership.GetAllUsers();
foreach (MembershipUser user in userCollection)
membershipList.Add(user);
string memberCollection = SerializeToString(membershipList, typeof(List<MembershipUser>));
List<MembershipUser> users = Deserialize(memberCollection, typeof(List<MembershipUser>)) as List<MembershipUser>;
return memberCollection;
}
Над кодом, что я использовал,
MembershipUserCollection userCollection = Membership.GetAllUsers();
GetAllUsers
метод возвращает MembershipUserCollection
, но это не имеет по умолчанию аксессор. Поэтому при сериализации я получаю исключение. Именно по этой причине я пошел с List<MembershipUser>
. Здесь тоже я сталкиваюсь с проблемой. Это есть мой день, что может решить это ?.
Редактировать: Я использую XmlSerializer.
Зависит от сериализатора - WCF DataContractSerializer с удовольствием сериализует частные члены, если вы на них накладываете атрибут [DataMember] ..... – 2010-12-07 17:03:23