Windows 8 앱용 C #에서 개체를 직렬화 및 역 직렬화하고 있습니다.
객체를 전달하면 예외가 발생하기 때문에 다음 뷰로 전달하기 전에 객체를 직렬화하고 있습니다.
함수 OnNavigatedTo :
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string XMLString = e.Parameter.ToString();
var thisChannel = XmlDeserializeFromString(XMLString, typeof(Channel));
....}
역 직렬화 기능 :
public static Channel XmlDeserializeFromString<Channel>(string objectData)
{
return (Channel)XmlDeserializeFromString(objectData, typeof(Channel));
}
public static object XmlDeserializeFromString(string objectData, Type type)
{
var serializer = new XmlSerializer(type);
object result;
using (TextReader reader = new StringReader(objectData))
{
result = serializer.Deserialize(reader);
}
return result;
}
이 개체의 데이터에 액세스하고 싶지만 thisChannel.Name이 작동하지 않습니다. 그리고이 오브젝트로 어떻게 계속 작업 할 수 있는지 모르겠습니다.
다음 var
줄 에 드롭 하여 시작하십시오 .
//var thisChannel = XmlDeserializeFromString(XMLString, typeof(Channel));
Channel thisChannel = XmlDeserializeFromString(XMLString, typeof(Channel));
그런 다음 잘못된 것을 object XmlDeserializeFromString()
선택 하면 적어도 오류가 발생합니다 .
그리고 올바른 것을 사용하려면 :
Channel thisChannel = XmlDeserializeFromString<Channel>(XMLString);
오버로딩은주의해서 사용해야하며 일반적으로 Type 매개 변수와 혼합하지 않아야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다