/// <summary>
 ///     第三方数据转换成元数据
 /// </summary>
 /// <param name="proxy">内存段实例</param>
 /// <param name="baseValueMessage">存储属性的实例对象</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 public unsafe void ValueProcessor(IMemorySegmentProxy proxy, BaseValueStored baseValueMessage)
 {
     if (proxy == null)
     {
         throw new ArgumentNullException("proxy");
     }
     if (baseValueMessage == null)
         throw new ArgumentNullException("baseValueMessage");
     fixed(IntPtr *pByte = baseValueMessage.GetValue <IntPtr[]>())
     proxy.WriteMemory(pByte, (uint)baseValueMessage.GetValue <IntPtr[]>().Length *Size.IntPtr);
 }
Exemple #2
0
 /// <summary>
 ///     第三方数据转换成元数据
 /// </summary>
 /// <param name="proxy">内存段实例</param>
 /// <param name="baseValueMessage">存储属性的实例对象</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 public void ValueProcessor(IMemorySegmentProxy proxy, BaseValueStored baseValueMessage)
 {
     if (proxy == null)
     {
         throw new ArgumentNullException("proxy");
     }
     if (baseValueMessage == null)
     {
         throw new ArgumentNullException("baseValueMessage");
     }
     proxy.WriteMemory(baseValueMessage.GetValue <byte[]>(), 0, (uint)baseValueMessage.GetValue <byte[]>().Length);
 }
Exemple #3
0
 /// <summary>
 ///     第三方数据转换成元数据
 /// </summary>
 /// <param name="proxy">内存段实例</param>
 /// <param name="baseValueMessage">存储属性的实例对象</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 public void ValueProcessor(IMemorySegmentProxy proxy, BaseValueStored baseValueMessage)
 {
     if (proxy == null)
     {
         throw new ArgumentNullException("proxy");
     }
     if (baseValueMessage == null)
     {
         throw new ArgumentNullException("baseValueMessage");
     }
     string[] value = baseValueMessage.GetValue <string[]>();
     proxy.WriteInt32(value.Length);
     if (value.Length == 0)
     {
         return;
     }
     for (int j = 0; j < value.Length; j++)
     {
         string elementValue = value[j];
         if (string.IsNullOrEmpty(elementValue))
         {
             proxy.WriteUInt16(0);
         }
         else
         {
             byte[] elementData = Encoding.UTF8.GetBytes(elementValue);
             proxy.WriteUInt16((ushort)elementData.Length);
             proxy.WriteMemory(elementData, 0U, (uint)elementData.Length);
         }
     }
 }
Exemple #4
0
 /// <summary>
 ///     第三方数据转换成元数据
 /// </summary>
 /// <param name="proxy">内存段实例</param>
 /// <param name="baseValueMessage">存储属性的实例对象</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 public void ValueProcessor(IMemorySegmentProxy proxy, BaseValueStored baseValueMessage)
 {
     if (proxy == null)
     {
         throw new ArgumentNullException("proxy");
     }
     if (baseValueMessage == null)
     {
         throw new ArgumentNullException("baseValueMessage");
     }
     ResourceBlock[] value = baseValueMessage.GetValue <ResourceBlock[]>();
     proxy.WriteUInt32((uint)value.Length);
     for (int i = 0; i < value.Length; i++)
     {
         if (value[i] == null)
         {
             proxy.WriteUInt32(0);
             continue;
         }
         MetadataObjectEngine.ToBytes(value[i], proxy);
     }
 }
Exemple #5
0
 /// <summary>
 ///     第三方数据转换成元数据
 /// </summary>
 /// <param name="proxy">内存段实例</param>
 /// <param name="baseValueMessage">存储属性的实例对象</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 public void ValueProcessor(IMemorySegmentProxy proxy, BaseValueStored baseValueMessage)
 {
     if (proxy == null)
     {
         throw new ArgumentNullException("proxy");
     }
     if (baseValueMessage == null)
     {
         throw new ArgumentNullException("baseValueMessage");
     }
     IPEndPoint[] array = baseValueMessage.GetValue <IPEndPoint[]>();
     if (array == null)
     {
         throw new NullReferenceException(string.Format("#The processed value is null, type Id is: {0}", baseValueMessage.TypeId));
     }
     if (array.Length == 0)
     {
         return;
     }
     for (int i = 0; i < array.Length; i++)
     {
         proxy.WriteIPEndPoint(array[i]);
     }
 }