1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
//----------------------------------------------------------------
// 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);
}
}
}
}
|