/// <summary> /// Generate extended fields for the specified storage. /// </summary> /// <param name="storage">Extended info <see cref="Message.ExtensionInfo"/> storage.</param> /// <returns>Extended fields.</returns> public static FieldMapping[] CreateExtendedFields(IExtendedInfoStorageItem storage) { return(storage .Fields .Select(t => (FieldMapping) new FieldMapping <SecurityMessage, object>($"{nameof(SecurityMessage.ExtensionInfo)}[{t.Item1}]", t.Item1, string.Empty, (s, v) => s.ExtensionInfo[t.Item1] = v, true)) .ToArray()); }
private IExtendedInfoStorageItem GetStorage() { if (_storage == null) { lock (_sync) { if (_storage == null) { _storage = _extendedInfoStorage.Create(_storageName, _fields); } } } return(_storage); }
/// <summary> /// Initializes a new instance of the <see cref="MessageAdapterWrapper"/>. /// </summary> /// <param name="innerAdapter">Underlying adapter.</param> /// <param name="storage">Extended info <see cref="Message.ExtensionInfo"/> storage.</param> public ExtendedInfoStorageMessageAdapter(IMessageAdapter innerAdapter, IExtendedInfoStorageItem storage) : base(innerAdapter) { Storage = storage; }