public override string SerializeToString(object obj)
{
if (obj != null)
{
#pragma warning disable 0219
ISerializationSettings settings = GetService<ISerializationSettings>();
#pragma warning restore 0219
List<string> values = new List<string>();
if (obj is string)
{
// Object to be serialied is a string already
values.Add((string)obj);
}
else if (obj is IEnumerable)
{
// Object is a list of objects (probably IList<string>).
foreach (object child in (IEnumerable)obj)
values.Add(child.ToString());
}
else
{
// Serialize the object as a string.
values.Add(obj.ToString());
}
ICalendarObject co = SerializationContext.Peek() as ICalendarObject;
if (co != null)
{
// Encode the string as needed.
EncodableDataType dt = new EncodableDataType();
dt.AssociatedObject = co;
for (int i = 0; i < values.Count; i++)
values[i] = Encode(dt, Escape(values[i]));
return string.Join(",", values.ToArray());
}
for (int i = 0; i < values.Count; i++)
values[i] = Escape(values[i]);
return string.Join(",", values.ToArray());
}
return null;
}