이것은 question과 중복되지 않습니다. 나는 "ReadOnly"인 Property를 직렬화해야한다. 이것은 System.Web.Security.MembershipUser
클래스이기 때문에 나는이 클래스에서 아무 것도 할 수 없습니다. 물론 클래스는 봉인되지 않습니다. 코드 위읽기 전용 멤버 데이터 serialize
[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를 사용하고 있습니다.
serializer에 따라 달라 지므로 WCF DataContractSerializer는 [DataMember] 특성을 넣어주는 한 비공개 멤버를 행복하게 serialize합니다. ..... –
True; 나는 Xml Serializer에 대해 생각하고 있었다. 그 질문은 어떤 것이 사용되고 있는지를 지정하지 않았고, 유용한 정보가 될 수있었습니다. –
당신은 serializer를 설정할 수 있습니다, 나는 이것에 대해 몰랐습니다. DataContractSerializer가 될 수도 있고 없을 수도 있습니다. 가능할 수도 있습니다. 해결책 일 수도 있지만 개인 필드에 액세스 할 수있는 자신의 serializer를 작성할 수도 있지만, 처음에는 그것들은 비공개 필드인지 확인하거나 다른 데이터로 생성 될 것입니다. –