public class GSObject { private Dictionary Data; public GSObject() { Data = new Dictionary(); } /// /// Returns this object in the GS binary format. /// /// public byte[] ToGSBinary() { List bytes = new List(); short length = (short)Data.Count; bytes.AddRange(length.ToGSBinary()); for (int i = 0; i < length; i++) { KeyValuePair elem = Data.ElementAt(i); bytes.AddRange(elem.Key.ToGSBinary()); bytes.AddRange(elem.Value.ToGSBinary()); } return bytes.ToArray(); } bool ContainsKey(string key); void Detach(string key); #region Attachers void Attach(string key, GSWrappedObject value); void AttachBool(string key, bool value); void AttachBoolArray(string key, IEnumerable value); void AttachByte(string key, byte value); void AttachByteArray(string key, IEnumerable value); void AttachShort(string key, short value); void AttachShortArray(string key, IEnumerable value); void AttachInt(string key, int value); void AttachIntArray(string key, IEnumerable value); void AttachLong(string key, long value); void AttachLongArray(string key, IEnumerable value); void AttachFloat(string key, float value); void AttachFloatArray(string key, IEnumerable value); void AttachDouble(string key, double value); void AttachDoubleArray(string key, IEnumerable value); void AttachString(string key, string value); void AttachStringArray(string key, IEnumerable value); void AttachGSArray(string key, IGSArray value); void AttachGSObject(string key, IGSObject value); #endregion #region Getters GSWrappedObject Get(string key); bool GetBool(string key); bool[] GetBoolArray(string key); byte GetByte(string key); byte[] GetByteArray(string key); short GetShort(string key); short[] GetShortArray(string key); int GetInt(string key); int[] GetIntArray(string key); long GetLong(string key); long[] GetLongArray(string key); float GetFloat(string key); float[] GetFloatArray(string key); double GetDouble(string key); double[] GetDoubleArray(string key); string GetString(string key); string[] GetStringArray(string key); IGSArray GetGSArray(string key); IGSObject GetGSObject(string key); #endregion }