Silverlightプロジェクトでデシリアライズに問題があります。私はこのメソッドと変数でObjクラスを持っています。直列化する前にSilverlightプロジェクトでデシリアライズ後に一部のフィールドが空です。
public class Obj
{
private string _name;
private Uri _iconUri;
private string _stringUri;
private List<ObjItem> _items = new List<ObjItem>();
public List<ObjItem> Items
{
get { return _items; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public Uri IconUri
{
get
{
return _iconUri;
}
}
public string StringUri { get { return _stringUri; } }
public int Count
{
get { return _items.Count; }
}
public Obj(string name,string uriString = null)
{
_name = name;
if (uriString == null)
{
_iconUri = null;
}
else
{
_iconUri = new Uri(uriString, UriKind.Relative);
}
_stringUri = uriString;
}
// for deserialization
public Obj()
{
}
}
すべてのフィールドが空ではありません! デシリアライズ後、_iconUriフィールドと_stringUriフィールド以外のすべてのフィールドはエンパプライではありません。 どうしてですか? 私はあなたの返事を待っています。 ありがとうございました!
Uriクラスはシリアライズ可能ではないため、どのシリアル化を使用しているのでしょうか?型を文字列に変更し、Uriを変換して返す別のプロパティを保持してください –