示例#1
0
        //------------------------------------------------------------------------------
        public static String ObjectToString(Object objectValue)
        {
            using (var ms = new MemoryStream())
            {
                var settings = SettingsBaseConfiguration.AdvancedConfigurationInternal.SharpSerializerSettings;
                var old_tnc  = settings.AdvancedSettings.TypeNameConverter;

                try
                {
                    var tnc = new TypeNameConverter(old_tnc);
                    settings.AdvancedSettings.TypeNameConverter = tnc;

                    var serializer = new SharpSerializer(settings);
                    serializer.Serialize(objectValue, ms);
                }
                finally
                {
                    settings.AdvancedSettings.TypeNameConverter = old_tnc;
                }

                var byteValue   = ms.ToArray();
                var stringValue = Convert.ToBase64String(byteValue);

                return(stringValue);
            }
        }
示例#2
0
        private void serializeBurstBinary_Click(object sender, EventArgs e)
        {
            // create fake obj
            var obj = RootContainer.CreateFakeRoot();

            // create instance of sharpSerializer
            var settings   = new SharpSerializerBinarySettings(BinarySerializationMode.Burst);
            var serializer = new SharpSerializer(settings);


            // *************************************************************************************
            // For advanced serialization you create SharpSerializer with an overloaded constructor
            //
            //  SharpSerializerBinarySettings settings = createBinarySettings();
            //  serializer = new SharpSerializer(settings);
            //
            // Scroll the page to the createBinarySettings() method for more details
            // *************************************************************************************


            // set the filename
            var filename = "sharpSerializerExample.burst";

            // serialize
            serialize(obj, serializer, filename);
        }
示例#3
0
        /// <summary>
        /// Serialize an object to a byte array
        /// </summary>
        /// <param name="o">The object to be serialized</param>
        /// <returns>The serialized form of the object</returns>
        protected virtual byte[] Serialize(object o)
        {
            try
            {
#if SILVERLIGHT
                var settings = new SharpSerializerBinarySettings(BinarySerializationMode.Burst);
                var ser      = new SharpSerializer(settings);
                var ms       = new MemoryStream();
                ser.Serialize(o, ms);
                ms.Close();
                return(ms.GetBuffer());
#else
                var ms = new MemoryStream();
                var bf = new BinaryFormatter();
                bf.Serialize(ms, o);
                ms.Close();
                return(ms.GetBuffer());
#endif
            }
            catch (Exception ex)
            {
                Logging.LogError(BrightstarEventId.CacheError, "Error serializing object for cache: {0}", ex);
                return(null);
            }
        }
示例#4
0
        public void SerializeMetadataAsBinary(Stream outputStream)
        {
            var settings   = new SharpSerializerBinarySettings(BinarySerializationMode.SizeOptimized);
            var serializer = new SharpSerializer(settings);

            serializer.Serialize(SMuFLMetadata, outputStream);
        }
        public IList <IListField> GetFields(int listId)
        {
            return(cacheManager.Get("Fields_GetFields_" + listId, ctx =>
            {
                ctx.Monitor(signals.When("FieldsOfList_Changed"));
                var records = Repository.Table.Where(x => x.ListId == listId).OrderBy(x => x.Position).ToList();
                var result = new List <IListField>();

                var settings = new SharpSerializerXmlSettings
                {
                    IncludeAssemblyVersionInTypeName = false,
                    IncludeCultureInTypeName = false,
                    IncludePublicKeyTokenInTypeName = false
                };

                var sharpSerializer = new SharpSerializer(settings);

                foreach (var record in records)
                {
                    if (string.IsNullOrEmpty(record.FieldProperties))
                    {
                        continue;
                    }

                    var field = (IListField)sharpSerializer.DeserializeFromString(record.FieldProperties);
                    field.Id = record.Id;
                    result.Add(field);
                }

                return result;
            }));
        }
示例#6
0
    public static async Task <T> Load <T>(string file)
    {
        IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
        T obj = Activator.CreateInstance <T>();

        if (storage.FileExists(file))
        {
            IsolatedStorageFileStream stream = null;
            try
            {
                stream = storage.OpenFile(file, FileMode.Open);
                var serializer = new SharpSerializer();

                obj = (T)serializer.Deserialize(stream);
            }
            catch
            {
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                    stream.Dispose();
                }
            }
            return(obj);
        }
        await obj.Save(file);

        return(obj);
    }
        public static byte[] SharpSerializer_XML_serialize_WithExclusion_ToByteArray(object myobj, List <KeyValuePair <Type, List <String> > > excludedProperties)
        {
            var settings = new SharpSerializerXmlSettings();

            settings.Encoding = System.Text.Encoding.ASCII;
            settings.AdvancedSettings.RootName = "r"; // to keep it short
            SharpSerializer serializer = new SharpSerializer(settings);

            using (var memoryStream = new MemoryStream())
            {
                if (excludedProperties != null)
                {
                    foreach (KeyValuePair <Type, List <String> > excKVP in excludedProperties)
                    {
                        foreach (string excPropertyName in excKVP.Value)
                        {
                            serializer.PropertyProvider.PropertiesToIgnore.Add(excKVP.Key, excPropertyName);
                        }
                    }
                }

                serializer.Serialize(myobj, memoryStream);
                return(memoryStream.ToArray());
            }
        }
示例#8
0
        void C_OnReceivedMessage(byte[] rawMessage)
        {
            SharpSerializer         ser          = SharpSerializer.Create(rawMessage);
            SharpConnectionMessages incomingType = (SharpConnectionMessages)ser.ReadByte();

            if (incomingType == SharpConnectionMessages.ClientConnected)
            {
                SharpClient incomingClient = new SharpClient(ref ser);
                this.room.AssignClient(incomingClient);
                C_OnClientConnected(incomingClient);
            }
            else if (incomingType == SharpConnectionMessages.ClientDisconnected)
            {
                short netID = ser.ReadInt16();
                C_OnClientDisconnected(this.room.Get(netID));
            }
            else if (incomingType == SharpConnectionMessages.DirectData)
            {
                short  sender      = ser.ReadShort();
                int    channel     = ser.ReadInt32();
                int    packageSize = ser.ReadInt32();
                byte[] rawData     = ser.ReadBytes(packageSize);
                C_OnReceivedData(this.room.Get(sender), channel, rawData);
            }

            ser.Post();
        }
示例#9
0
        public static AppFileTemplate DeSerialize(string fileName)
        {
            SharpSerializer serializer = new SharpSerializer();

            return
                ((AppFileTemplate)(serializer.Deserialize(fileName)));
        }
示例#10
0
        private WorkerArguments SaveParameters()
        {
            var taskId      = Guid.NewGuid();
            var argFilePath = PrepareDirectory(taskId);

            WorkerArguments args;

            if (ExportType == typeof(CustomExportWorker))
            {
                args = CustomExportArgs(argFilePath);
            }
            else
            {
                args = StandardExportArgs(argFilePath);
            }

            if (args == null)
            {
                return(null);
            }

            args.Id = taskId;
            var eaFileName = Path.Combine(argFilePath, WorkerArguments.ArgumentsFileName);
            var settings   = args.GetSharpSerializerXmlSettings(WorkerArguments.ArgumentsFileRootName);
            var serializer = new SharpSerializer(settings);

            serializer.Serialize(args, eaFileName);

            return(args);
        }
示例#11
0
        public static object DeserializeObject(string xmlOfAnObject)
        {
            if (xmlOfAnObject.StartsWith("?"))
            {
                xmlOfAnObject = xmlOfAnObject.Remove(0, 1);
            }

            if (xmlOfAnObject.Equals("<null/>"))
            {
                return(null);
            }

            //return JsonConvert.DeserializeObject(xmlOfAnObject);


            var settings = new SharpSerializerXmlSettings();

            settings.IncludeAssemblyVersionInTypeName = false;
            settings.IncludeCultureInTypeName         = false;
            settings.IncludePublicKeyTokenInTypeName  = false;

            var serializer = new SharpSerializer(settings);

            serializer.PropertyProvider.AttributesToIgnore.Clear();
            // remove default ExcludeFromSerializationAttribute for performance gain
            //serializer.PropertyProvider.AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));
            byte[] bajty = Encoding.UTF8.GetBytes(xmlOfAnObject);
            using (var ms = new MemoryStream(bajty))
            {
                object obiekt = serializer.Deserialize(ms);

                return(obiekt);
            }
        }
示例#12
0
        public static string SerializeObject(object obj)
        {
            if (obj == null)
            {
                return("<null/>");
            }

            //string preserveReferenacesAll = JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings
            //{
            //    PreserveReferencesHandling = PreserveReferencesHandling.All
            //});

            //return preserveReferenacesAll;

            //return JsonConvert.SerializeObject(obj);

            var serializer = new SharpSerializer();

            serializer.PropertyProvider.AttributesToIgnore.Clear();
            // remove default ExcludeFromSerializationAttribute for performance gain
            serializer.PropertyProvider.AttributesToIgnore.Add(typeof(XmlIgnoreAttribute));

            using (var ms = new MemoryStream())
            {
                serializer.Serialize(obj, ms);
                ms.Position = 0;
                byte[] bajty = ms.ToArray();
                return(Encoding.UTF8.GetString(bajty, 0, bajty.Length));
            }
        }
示例#13
0
    public static T Load <T>(SharpSerializer serializer, string prefix) where T : User, new()
    {
        T user = null;

        try
        {
            if (!File.Exists(SAVE_FILE_PATH))
            {
                throw new Exception("There is no user data saved at " + SAVE_FILE_PATH);
            }

            Debug.Log("Loading user from " + SAVE_FILE_PATH);

            FileStream fileStream = File.Open(SAVE_FILE_PATH, FileMode.Open);

            using (var stream = fileStream)
            {
                user = serializer.Deserialize(stream) as T;
            }
        }
        catch (Exception e)
        {
            Debug.LogError("There was an error loading user data at " + string.Format("{0}{1}", prefix, UserServiceUtils.USER_DATA_KEY) + ": \n" + e);
            user     = new T();
            user.UID = SystemInfo.deviceUniqueIdentifier;
        }

        return(user);
    }
示例#14
0
        //------------------------------------------------------------------------------
        static public T StringToObject <T>(string stringValue)
        {
            using (var ms = new MemoryStream())
            {
                var byteValue = Convert.FromBase64String(stringValue);
                ms.Write(byteValue, 0, byteValue.Length);
                ms.Seek(0, SeekOrigin.Begin);

                var settings = SettingsBaseConfiguration.AdvancedConfigurationInternal.SharpSerializerSettings;
                var old_tnc  = settings.AdvancedSettings.TypeNameConverter;

                try
                {
                    var tnc = new TypeNameConverter(old_tnc);
                    settings.AdvancedSettings.TypeNameConverter = tnc;

                    var serializer = new SharpSerializer(settings);
                    var result     = serializer.Deserialize(ms);

                    return((T)result);
                }
                finally
                {
                    settings.AdvancedSettings.TypeNameConverter = old_tnc;
                }
            }
        }
示例#15
0
 public SimulationService() : base()
 {
     _serializer = new SharpSerializer();
     _worldSimulationStateService = Game.Instance.GetService <WorldSimulationStateService>();
     _worldDataAccessService      = Game.Instance.GetService <WorldDataAccessService>();
     _worldSimulationStateService.Load(OnSimulationStateLoaded, () => { });
 }
示例#16
0
文件: manager.cs 项目: llotan/beans
        public void load()
        {
            // availanle
            availble.Add(new fnctn(1, filters.morphoArea.Run, null, "Calculate area"));
            availble.Add(new fnctn(2, filters.morphoPerimeter.Run, null, "Calculate perimeter"));
            availble.Add(new fnctn(3, filters.morphoRoundness.Run, null, "Calculate  roundness "));
            availble.Add(new fnctn(4, filters.morphoElongation.Run, null, "Calculate  elongation (eccentricity) "));
            availble.Add(new fnctn(5, filters.morphoMinEncloseCircle.Run, null, "Calculate Rmax/min, enclosing circle"));

            availble.Add(new fnctn(7, filters.morphoConvexity.Run, null, "Calculate convexity (area,perimeter)"));
            availble.Add(new fnctn(8, filters.morphoOrientation.Run, null, "Calculate  orientation & max/min axis"));
            availble.Add(new fnctn(9, filters.morphoMoment.Run, null, "Calculate moments"));


            availble.Add(new fnctn(10, filters.colorRED.Run, filters.colorRED.GetIntensity, "Detect RED color"));
            availble.Add(new fnctn(11, filters.colorBLUE.Run, filters.colorBLUE.GetIntensity, "Detect BLUE color"));
            availble.Add(new fnctn(13, filters.colorGREEN.Run, filters.colorGREEN.GetIntensity, "Detect GREEN color"));
            availble.Add(new fnctn(14, filters.colorYELLOW.Run, filters.colorYELLOW.GetIntensity, "Detect YELLOW color"));


            availble.Add(new fnctn(99, filters.checkAll.Run, filters.checkAll.GetIntensity, "Detect ALL  (for test)"));


            // activs
            if (File.Exists(file_name))
            {
                var serializer = new SharpSerializer();
                var list       = serializer.Deserialize(file_name);
                activs = (List <fnctn4save>)list;
            }
            else
            {
                save();
            }
        }
示例#17
0
    public static async Task Save <T>(this T obj, string file)
    {
        await Task.Run(() =>
        {
            IsolatedStorageFile storage      = IsolatedStorageFile.GetUserStoreForApplication();
            IsolatedStorageFileStream stream = null;

            try
            {
                stream         = storage.CreateFile(file);
                var serializer = new SharpSerializer();
                serializer.Serialize(obj, stream);
            }
            catch (Exception)
            {
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                    stream.Dispose();
                }
            }
        });
    }
示例#18
0
        private static void TrySharpSerializer(object obj)
        {
            var serializer = new SharpSerializer();

            serializer.Serialize(obj, "test.xml");
            var obj2 = serializer.Deserialize("test.xml");
        }
示例#19
0
        public virtual RetCode SaveDatabase(string fileName)
        {
            RetCode rc;

            if (string.IsNullOrWhiteSpace(fileName))
            {
                rc = RetCode.InvalidArg;

                // PrintError

                goto Cleanup;
            }

            rc = RetCode.Success;

            if (DbStackTop < 0)
            {
                rc = RetCode.IsEmpty;

                goto Cleanup;
            }

            SharpSerializer.Serialize(Database, fileName);

Cleanup:

            return(rc);
        }
示例#20
0
        void HandleAcceptedConnection(TcpClient client, SharpClient sclient)
        {
            SharpSerializer syncPack = SharpSerializer.Create();

            syncPack.Write((byte)IncomingConnectionResponse.Approved);

            short netID = this.room.NextFreeID;

            sclient.AssingNetID(netID);


            syncPack.Write(netID);
            this.room.Write(ref syncPack);

            TCPMessageHandler.Write(client, syncPack.DataAndPost());

            this.room.AssignClient(sclient);
            Thread t = new Thread(() => ListenClient(sclient));

            sclient.ListeningThread = t;
            sclient.Connection      = client;

            t.Start();

            S_OnClientConnected(sclient);
        }
示例#21
0
        public static string ToSharpXml(this object o)
        {
#if VS2013
            // create the settings
            //var settings = new SharpSerializerBinarySettings(); // for binary mode
            var settings = new SharpSerializerXmlSettings();     // for xml mode

            // configure the type serialization
            settings.IncludeAssemblyVersionInTypeName = false;
            settings.IncludeCultureInTypeName         = false;
            settings.IncludePublicKeyTokenInTypeName  = false;

            // instantiate sharpSerializer

            using (var ms = new MemoryStream())
            {
                var serializer = new SharpSerializer(settings);
                serializer.Serialize(o, ms);
                ms.Flush();
                ms.Position = 0;
                var sr = new StreamReader(ms);
                return(sr.ReadToEnd());
            }
#else
            throw new NotImplementedException();
#endif
        }
示例#22
0
        public void SendMessage(int Channel, byte[] data, SharpClient client)
        {
            SharpSerializer ser = SharpSerializer.Create();

            ser.Write((byte)SharpConnectionMessages.DirectData);

            ser.Write((short)0);
            ser.Write(Channel);
            ser.Write(data.Length);
            ser.Write(data);

            if (client.isMine)
            {
                S_OnReceivedData(serverclient, Channel, data);
            }
            else
            {
                client.SendMessage(ser.DataAndPost());
            }

            if (ser.inUse)
            {
                ser.Post();
            }
        }
示例#23
0
        private void CopyUrlAddress_Click(object sender, RoutedEventArgs e)
        {
            var tableName = (ListGridTab.SelectedItem as TabItem).Tag.ToString();

            this.SearchCondition.SelectedTableName = tableName;
            var ud = new UrlData
            {
                Condition = this.SearchCondition,
                Type      = "List",
            };
            MemoryStream ms         = new MemoryStream();
            var          serializer = new SharpSerializer(true);

            serializer.Serialize(ud, ms);
            byte[] array = ms.ToArray();
            ms.Close();
            string data      = Convert.ToBase64String(array);
            var    url       = HtmlPage.Document.DocumentUri;
            var    urlstring = url.ToString();

            if (url.Query.Length > 0)
            {
                urlstring = urlstring.Replace(url.Query, "");
            }
            Clipboard.SetText(string.Format("{0}?url={1}", urlstring, data));
        }
示例#24
0
        public void SendMessage(int Channel, byte[] data, List <SharpClient> clients)
        {
            SharpSerializer ser = SharpSerializer.Create();

            ser.Write((byte)SharpConnectionMessages.DirectData);

            ser.Write((short)0);
            ser.Write(Channel);
            ser.Write(data.Length);
            ser.Write(data);


            byte[] rawData = ser.DataAndPost();
            foreach (var item in clients)
            {
                if (item.isMine)
                {
                    S_OnReceivedData(serverclient, Channel, data);
                }
                else
                {
                    item.SendMessage(rawData);
                }
            }
        }
示例#25
0
        static void Main(string[] args)
        {
            TestClass t = new TestClass()
            {
                ID     = Guid.NewGuid(),
                Name   = "睡觉了快递费",
                Number = 123,
                Values = new List <int>()
                {
                    1, 2, 3, 4, 5
                },
                Values2 = new List <float>()
                {
                    1, 2, 3, 4, 5
                },
                Values3 = new byte[] { 1, 2, 3, 4, 5 },
                Value4  = new Dictionary <string, int>()
                {
                    { "1", 1 }, { "2", 2 }
                }
            };

            SharpSerializer s    = new SharpSerializer();
            string          path = Path.Combine(Environment.CurrentDirectory, "test.xml");

            s.Serialize(t, path);

            var t1 = s.Deserialize(path);
        }
示例#26
0
        void S_OnClientDisconnected(SharpClient client)
        {
            #region Broadcasting Other Clients
            SharpSerializer ser = SharpSerializer.Create();
            ser.Write((byte)SharpConnectionMessages.ClientDisconnected);
            ser.Write(client.NetworkID);

            Broadcast(ser.DataAndPost(), client);
            #endregion

            SharpNetworking.Instance.OnClientDisconnected(client);

            room.RemoveClient(client);

            #region Closing Socket & Thread
            try
            {
                TCPMessageHandler.CloseConnection(client.Connection);
            }
            catch { }
            try
            {
                client.ListeningThread.Abort();
            }
            catch { }
            client.ListeningThread = null;

            #endregion
        }
示例#27
0
        /// <summary>
        /// Deserialize an object from a byte array
        /// </summary>
        /// <typeparam name="T">The type of object to deserialize</typeparam>
        /// <param name="buff">The byte array to deserialize from</param>
        /// <returns>The deserialized object</returns>
        protected virtual T Deserialize <T>(byte[] buff)
        {
            try
            {
#if SILVERLIGHT
                var settings     = new SharpSerializerBinarySettings(BinarySerializationMode.Burst);
                var ms           = new MemoryStream(buff);
                var ser          = new SharpSerializer(settings);
                var deserialized = ser.Deserialize(ms);
                return((T)deserialized);
#else
                if (typeof(IBinarySerializable).IsAssignableFrom(typeof(T)))
                {
                    var instance = Activator.CreateInstance <T>();
                    using (var srcStream = new MemoryStream(buff))
                    {
                        (instance as IBinarySerializable).Read(srcStream);
                    }
                    return(instance);
                }
                var ms = new MemoryStream(buff);
                var bf = new BinaryFormatter();
                return((T)bf.Deserialize(ms));
#endif
            }
            catch (Exception ex)
            {
                Logging.LogError(BrightstarEventId.CacheError, "Error deserializing cached object: {0}", ex);
                return(default(T));
            }
        }
示例#28
0
文件: Cacher.cs 项目: swinghu/Ocell
        public static IEnumerable <TwitterStatus> GetFromCache(TwitterResource resource)
        {
            string fileName   = GetCacheName(resource);
            var    serializer = new SharpSerializer(SerializerSettings);

            IEnumerable <TwitterStatus> statuses = null;

            MutexUtil.DoWork("OCELL_FILE_MUTEX" + fileName, () =>
            {
                try
                {
                    using (var stream = FileAbstractor.GetFileStream(fileName))
                    {
                        if (stream.Length != 0)
                        {
                            statuses = serializer.Deserialize(stream) as IEnumerable <TwitterStatus>;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex);
                }
            });

            return(statuses ?? new List <TwitterStatus>());
        }
示例#29
0
        public static string ToXml(this object obj, Func <Type, PropertyInfo, bool> propertyHandlerCallback, Func <Type, bool> collectionItemHandlerCallback)
        {
            var settings = new SharpSerializerXmlSettings
            {
                AdvancedSettings = new AdvancedSharpSerializerXmlSettings
                {
                    TypeNameConverter = new TypeNameConverter()
                },

                IncludeAssemblyVersionInTypeName = false,
                IncludeCultureInTypeName         = false,
                IncludePublicKeyTokenInTypeName  = false,
            };

            var propertySerializer = new PropertySerializer(obj, propertyHandlerCallback, collectionItemHandlerCallback);
            var serializer         = new SharpSerializer()
            {
                PropertyProvider = propertySerializer, RootName = obj.GetType().Name
            };

            using (var stream = new MemoryStream())
            {
                var    text = string.Empty;
                string xml;

                serializer.Serialize(obj, stream);

                stream.Seek(0, SeekOrigin.Begin);

                xml = stream.ToText();

                return(xml);
            }
        }
示例#30
0
    protected override void ThreadFunction()
    {
        foreach (SaveAreaRequest saveAreaRequest in _requests)
        {
            FileStream areaFileStream = File.Open(saveAreaRequest.filename, FileMode.Create);

            switch (_worldIndex.SerializationType)
            {
            case SerializationType.Binary:
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(areaFileStream, saveAreaRequest.area);
                break;

            case SerializationType.SharpSerializer:
                SharpSerializer serializer = new SharpSerializer();
                using (var stream = areaFileStream)
                {
                    serializer.Serialize(saveAreaRequest.area, areaFileStream);
                }
                break;
            }

            areaFileStream.Close();
        }
    }