Hi,
My localDataProvider's data structure is dynamic and like this.
public class PeriodicData : CustomTypeHelper<PeriodicData>
{
}
In app I'm adding these properties to PeriodicData as follows
PeriodicData.AddProperty("Month", typeof(MyMonth));
PeriodicData.AddProperty("Year", typeof(MyYear));
PeriodicData.AddProperty("Name", typeof(string));
PeriodicData.AddProperty("Sallary", typeof(double));
MyMonth and MyYear are similiar structures and like this
public class MyMonth : IComparable, IComparable<MyMonth>, IEquatable<MyMonth>
{
public MyMonth(int month)
{
this.Month = month;
}
private int _month;
public int Month
{
get
{
return _month;
}
set
{
this.SortKey = value;
_month = value;
}
}
private int _sortKey;
public int SortKey
{
get
{
return _sortKey;
}
private set
{
_sortKey = value;
}
}
public override string ToString()
{
return this.Month.ToString();
}
public int CompareTo(object obj)
{
return this.CompareTo(obj as MyMonth);
}
public override bool Equals(object obj)
{
return this.Equals(obj as MyMonth);
}
public override int GetHashCode()
{
return this.SortKey.GetHashCode();
}
public int CompareTo(MyMonth otherMonth)
{
if (otherMonth != null)
{
return this.SortKey.CompareTo(otherMonth.SortKey);
}
return 0;
}
public bool Equals(MyMonth otherMonth)
{
if (otherMonth != null)
{
return this.Month.Equals(otherMonth.Month);
}
return false;
}
}
When I want to serialize the radpivotgrid data I'm getting the exception below and I don't know how to modify method below
public string Serialize(object context)
{
string serialized = string.Empty;
IDataProvider dataProvider = context as IDataProvider;
if (dataProvider != null)
{
MemoryStream stream = new MemoryStream();
DataProviderSettings settings = new DataProviderSettings()
{
Aggregates = dataProvider.Settings.AggregateDescriptions.OfType<object>().ToArray(),
Filters = dataProvider.Settings.FilterDescriptions.OfType<object>().ToArray(),
Rows = dataProvider.Settings.RowGroupDescriptions.OfType<object>().ToArray(),
Columns = dataProvider.Settings.ColumnGroupDescriptions.OfType<object>().ToArray(),
AggregatesLevel = dataProvider.Settings.AggregatesLevel,
AggregatesPosition = dataProvider.Settings.AggregatesPosition
};
DataContractSerializer serializer = new DataContractSerializer(typeof(DataProviderSettings), KnownTypes);
serializer.WriteObject(stream, settings);
stream.Position = 0;
var streamReader = new StreamReader(stream);
serialized += streamReader.ReadToEnd();
}
return serialized;
}
Best regards...