/// <summary> /// MessageIdentity类型存储的静态构造器 /// </summary> static MessageIdentityValueStored() { _instance = ValueStoredHelper.BuildMethod <MessageIdentity>(); _toBytesDelegate = delegate(IMemorySegmentProxy proxy, BaseValueStored messageIdentityValueStored) { proxy.WriteByte(messageIdentityValueStored.GetValue <MessageIdentity>().ProtocolId); proxy.WriteByte(messageIdentityValueStored.GetValue <MessageIdentity>().ServiceId); proxy.WriteByte(messageIdentityValueStored.GetValue <MessageIdentity>().DetailsId); proxy.WriteInt16(messageIdentityValueStored.GetValue <MessageIdentity>().Tid); }; _toDataDelegate = delegate(ResourceBlock metadataObject, byte id, byte[] byteData, int offsetStart, uint offsetLength) { MessageIdentity messageIdentity = new MessageIdentity { ProtocolId = byteData[offsetStart++], ServiceId = byteData[offsetStart++], DetailsId = byteData[offsetStart++], Tid = BitConverter.ToInt16(byteData, offsetStart) }; metadataObject.SetAttribute(id, new MessageIdentityValueStored(messageIdentity)); }; }
/// <summary> /// TransactionIdentity类型存储的静态构造器 /// </summary> static TransactionIdentityValueStored() { _instance = ValueStoredHelper.BuildMethod <TransactionIdentity>(); _toBytesDelegate = delegate(IMemorySegmentProxy proxy, BaseValueStored messageIdentityValueStored) { TransactionIdentity identity = messageIdentityValueStored.GetValue <TransactionIdentity>(); if (identity.IdentityType == TransactionIdentityTypes.TCP) { TCPTransactionIdentity.Serialize(0, IdentitySerializationTypes.Metadata, (TCPTransactionIdentity)identity, proxy); } else if (identity.IdentityType == TransactionIdentityTypes.NamedPipe) { NamedPipeTransactionIdentity.Serialize(0, IdentitySerializationTypes.Metadata, (NamedPipeTransactionIdentity)identity, proxy); } else { throw new NotSupportedException(string.Format("#We were not support current type of Transaction-Identity yet! {0}", identity.IdentityType)); } }; _toDataDelegate = delegate(ResourceBlock metadataObject, byte id, byte[] byteData, int offsetStart, uint offsetLength) { TransactionIdentityTypes identityType = (TransactionIdentityTypes)byteData[offsetStart]; if (identityType == TransactionIdentityTypes.TCP) { metadataObject.SetAttribute(id, new TransactionIdentityValueStored(TCPTransactionIdentity.Deserialize(byteData, offsetStart, (int)offsetLength))); } else if (identityType == TransactionIdentityTypes.NamedPipe) { metadataObject.SetAttribute(id, new TransactionIdentityValueStored(NamedPipeTransactionIdentity.Deserialize(byteData, offsetStart, (int)offsetLength))); } else { throw new NotSupportedException(string.Format("#We were not support current type of Transaction-Identity yet! {0}", identityType)); } }; }
/// <summary> /// String类型存储的静态构造器 /// </summary> static StringValueStored() { _instance = ValueStoredHelper.BuildMethod <string>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.String]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.String]; }
/// <summary> /// Char类型存储的静态构造器 /// </summary> static CharValueStored() { _instance = ValueStoredHelper.BuildMethod <char>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.Char]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.Char]; }
/// <summary> /// IntPtr数组类型存储的静态构造器 /// </summary> static IntPtrArrayValueStored() { _instance = ValueStoredHelper.BuildMethod <IntPtr[]>(); _toBytesDelegate = (DataProcessorMapping.Instance.GetProcessor(PropertyTypes.IntPtrArray)).ValueProcessor; _toDataDelegate = (DataProcessorMapping.Instance.GetProcessor(PropertyTypes.IntPtrArray)).DataProcessor; }
/// <summary> /// IntellectObject类型存储的静态构造器 /// </summary> static IntellectObjectValueStored() { _instance = ValueStoredHelper.BuildMethod <byte[]>(); _toBytesDelegate = (DataProcessorMapping.Instance.GetProcessor(PropertyTypes.IntellectObject)).ValueProcessor; _toDataDelegate = (DataProcessorMapping.Instance.GetProcessor(PropertyTypes.IntellectObject)).DataProcessor; }
/// <summary> /// Int16类型存储的静态构造器 /// </summary> static Int16ValueStored() { _instance = ValueStoredHelper.BuildMethod <short>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.Int16]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.Int16]; }
/// <summary> /// TimeSpan类型存储的静态构造器 /// </summary> static TimeSpanValueStored() { _instance = ValueStoredHelper.BuildMethod <TimeSpan>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.TimeSpan]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.TimeSpan]; }
/// <summary> /// Float类型存储的静态构造器 /// </summary> static FloatValueStored() { _instance = ValueStoredHelper.BuildMethod <float>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.Float]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.Float]; }
/// <summary> /// ResourceBlock数组类型存储的静态构造器 /// </summary> static ResourceBlockArrayStored() { _instance = ValueStoredHelper.BuildMethod <ResourceBlock[]>(); _toBytesDelegate = DataProcessorMapping.Instance.GetProcessor(PropertyTypes.ResourceBlockArray).ValueProcessor; _toDataDelegate = (DataProcessorMapping.Instance.GetProcessor(PropertyTypes.ResourceBlockArray)).DataProcessor; }
/// <summary> /// UInt32类型存储的静态构造器 /// </summary> static UInt32ValueStored() { _instance = ValueStoredHelper.BuildMethod <uint>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.UInt32]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.UInt32]; }
/// <summary> /// Byte数组类型存储的静态构造器 /// </summary> static ByteArrayValueStored() { _instance = ValueStoredHelper.BuildMethod <byte[]>(); _toBytesDelegate = DataProcessorMapping.Instance.GetProcessor(PropertyTypes.ByteArray).ValueProcessor; _toDataDelegate = DataProcessorMapping.Instance.GetProcessor(PropertyTypes.ByteArray).DataProcessor; }
/// <summary> /// Decimal类型存储的静态构造器 /// </summary> static DecimalValueStored() { _instance = ValueStoredHelper.BuildMethod <decimal>(); _toBytesDelegate = ProcessorDictionary.ValueActions[(byte)PropertyTypes.Decimal]; _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.Decimal]; }
/// <summary> /// ResourceBlock类型存储的静态构造器 /// </summary> static ResourceBlockStored() { _instance = ValueStoredHelper.BuildMethod <ResourceBlock>(); _toDataDelegate = ProcessorDictionary.DataActions[(byte)PropertyTypes.ResourceBlock]; }