Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WCallUpdate : NotificationData
- {
- private string m_from = "";
- [DataMember]
- public string From
- {
- get { return m_from; }
- set { m_from = value; }
- }
- private WCall m_wCall = new WCall();
- [DataMember]
- public WCall Call
- {
- get { return m_wCall; }
- set { m_wCall = value; }
- }
- }
- /// <summary>
- /// Basic class used in the notification service
- /// </summary>
- [DataContract]
- public class NotificationData
- {
- }
- /// <summary>
- /// Enum containing all the events used in the application
- /// </summary>
- [DataContract]
- public enum NotificationTypeKey
- {
- [EnumMember]
- Default = 0,
- [EnumMember]
- IWorkQueueServiceAttributionAddedEvent = 1,
- [EnumMember]
- IWorkQueueServiceAttributionUpdatedEvent = 2,
- [EnumMember]
- IWorkQueueServiceAttributionRemovedEvent = 3,
- }
- #region Create Message
- /// <summary>
- /// Creates a memoryStream from a notificationData
- /// note: we insert also the notificationTypeKey at the beginning of the
- /// stream in order to treat the memoryStream correctly on the client side
- /// </summary>
- /// <param name="notificationTypeKey"></param>
- /// <param name="notificationData"></param>
- /// <returns></returns>
- public MemoryStream CreateMessage(NotificationTypeKey notificationTypeKey, NotificationData notificationData)
- {
- MemoryStream stream = new MemoryStream();
- BinaryFormatter formatter = new BinaryFormatter();
- try
- {
- formatter.Serialize(stream, notificationTypeKey);
- formatter.Serialize(stream, notificationData);
- }
- catch (Exception ex)
- {
- Logger.Exception(ex);
- }
- return stream;
- }
- #endregion
- WCallUpdate m_wCallUpdate = new WCallUpdate();
- NotificationTypeKey m_notificationTypeKey = new NotificationTypeKey.Default;
- CreateMessage(notificationTypeKey , wCallUpdate );
- System.Runtime.Serialization.SerializationException: Type 'Xxx.DataContracts.WCall' in Assembly 'Xxx.DataContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
- at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
- at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
- at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
- at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)
- at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)
- at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
- at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
- at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
- at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
- at Xxx.Notification.NotificationMessageFactory.CreateMessage(NotificationTypeKey notificationTypeKey, NotificationData notificationData) in Xxx.NotificationNotificationCenter.cs:line 36
- #region NotificationData
- /// <summary>
- /// Basic class used in the notification service
- /// </summary>
- [Serializable]
- [DataContract]
- public class NotificationData
- {
- }
- #endregion
- [Serializable]
- public class WCallUpdate : NotificationData
- {
- private string m_from = "";
- [DataMember]
- public string From
- {
- get { return m_from; }
- set { m_from = value; }
- }
- private WCall m_wCall = new WCall();
- [DataMember]
- public WCall Call
- {
- get { return m_wCall; }
- set { m_wCall = value; }
- }
- }
- #region DataContractSerializer
- /// <summary>
- /// Creates a Data Contract Serializer for the provided type. The type must be marked with
- /// the data contract attribute to be serialized successfully.
- /// </summary>
- /// <typeparam name="T">The type to be serialized</typeparam>
- /// <returns>A data contract serializer</returns>
- public static DataContractSerializer CreateDataContractSerializer<T>() where T : class
- {
- DataContractSerializer serializer = new DataContractSerializer(typeof(T));
- return serializer;
- }
- #endregion
- AA D1=new AA(); //Derived type
- BB D2=new BB(); //Derived type
- CC D3=new CC(); //Derived type
- X D4=new X(); //Base Class
- XList<X> AllData=new XList<X>();
- AllData.Add(D1);
- AllData.Add(D2);
- AllData.Add(D3);
- AllData.Add(D4);
- // -----------------------------------
- AllData.Save(@"C:TempDemo.xml");
- // -----------------------------------
- // Retrieve data from XML file
- // -----------------------------------
- XList<X> AllData=new XList<X>();
- AllData.Open(@"C:TempDemo.xml");
- // -----------------------------------
Add Comment
Please, Sign In to add comment