这是我班上的两个属性。 System.Windows.Media.Color
不可序列化,因此我为它创建了一个字符串类型包装器属性,以尝试使其序列化。
//private string _SerializationTest;
public string SerializationTest {
get { return new ColorConverter().ConvertToString(_RgbColor); }
set { _RgbColor = (Color)ColorConverter.ConvertFromString(value); }
}
[NonSerialized]
private Color _RgbColor = Colors.Red;
public Color RgbColor {
get { return _RgbColor; }
set
{
if (_RgbColor != value)
{
_RgbColor = value;
NotifyPropertyChanged("RgbColor");
}
}
}
我创建了一个小的序列化测试来显示问题:
obj参数是我的类,其中包含上述2个属性。
public void SerializationTest(object obj)
{
IDataObject dataObj = new DataObject();
dataObj.SetData("Serial", obj);
Clipboard.SetDataObject(dataObj, false); //SerializationTest = "#FFFF0000" here
dataObj = Clipboard.GetDataObject();
var clipboardData = dataObj.GetData("Serial"); //SerializationTest = "#00000000" here. Incorrect value.
}
你知道什么地方可能出问题吗?