//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------- namespace System.ServiceModel { using System.Collections.Generic; using System.ComponentModel; using System.ServiceModel.Activities; using System.ServiceModel.Dispatcher; using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.Runtime.Serialization; using System.Security.Permissions; [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldHaveCorrectSuffix, Justification = "Arch approved name")] [SuppressMessage(FxCop.Category.Usage, FxCop.Rule.MarkISerializableTypesWithSerializable, Justification = "TODO 87908, We can consider not deriving from Dictionary")] public class MessageQuerySet : Dictionary<string, MessageQuery> { public MessageQuerySet() { } public MessageQuerySet(MessageQueryTable<string> queryTable) { if (queryTable == null) { throw FxTrace.Exception.ArgumentNull("queryTable"); } InvertDictionary<MessageQuery, string>(queryTable, this); } [DefaultValue(null)] public string Name { get; set; } public MessageQueryTable<string> GetMessageQueryTable() { MessageQueryTable<string> result = new MessageQueryTable<string>(); InvertDictionary<string, MessageQuery>(this, result); return result; } static void InvertDictionary<TKey, TValue>(IDictionary<TKey, TValue> source, IDictionary<TValue, TKey> destination) { foreach (KeyValuePair<TKey, TValue> vkpair in source) { destination.Add(vkpair.Value, vkpair.Key); } } } }