コード例 #1
0
ファイル: ObjectCloner.cs プロジェクト: savasl/SambaPOS-3
 public static T Deserialize <T>(string data) where T : class
 {
     using (var deserializer = new XmlDeserializerHelper())
     {
         var d = new XmlDocument();
         d.LoadXml(data);
         return(deserializer.Deserialize(d) as T);
     }
 }
コード例 #2
0
ファイル: ObjectCloner.cs プロジェクト: savasl/SambaPOS-3
        public static T Clone <T>(T item) where T : class
        {
            using (var serializer = new XmlSerializerHelper {
                IgnoreSerializableAttribute = true
            })
            {
                using (var deserializer = new XmlDeserializerHelper())
                {
                    var dictionary = new Dictionary <Type, Dictionary <int, IEntityClass> >();
                    PropertyComparor.ExtractEntities(item, dictionary);

                    var xmlDocument = serializer.Serialize(item);
                    var clone       = deserializer.Deserialize(xmlDocument, dictionary) as T;
                    return(clone);
                }
            }
        }