我正在尝试实现一个用于WCF的字典.我的要求是:
System.StringComparer.InvariantCultureIgnoreCase
我试图在WCF主机和客户端项目共享的公共项目中使用此类:
[Serializable]
public class MyDictionary : Dictionary<string, object>
{
public MyDictionary()
: base(System.StringComparer.InvariantCultureIgnoreCase)
{ }
public new void Add(string key, object value)
{ /* blah */ }
public override string ToString()
{ /* blah */ }
}
[DataContract]
[KnownType(typeof(MyDictionary))]
[KnownType(typeof(object[]))]
[KnownType(typeof(double[]))]
[KnownType(typeof(string[]))]
[KnownType(typeof(DateTime[]))]
public class ResultClass
{
public object Value{ get; set; }
/* More properties */
}
public class ParmData
{
public object Value{ get; set; }
/* More properties */
}
[DataContract]
[KnownType(typeof(MyDictionary))]
[KnownType(typeof(object[]))]
[KnownType(typeof(double[]))]
[KnownType(typeof(string[]))]
[KnownType(typeof(DateTime[]))]
public class ParameterClass
{
public List<ParmData> Data{ get; set; }
/* More properties */
}
[OperationContract]
ResultClass DoSomething(ParameterClass args);
Run Code Online (Sandbox Code Playgroud)
结果:
MyDictionary
.还比较= System.Collections.Generic.GenericEqualityComparer<string>
,而不是我正在寻找的不区分大小写的比较器.我要求的帮助是要么修复我失败的尝试,要么是完全不同的方式来达到我声明的要求.任何解决方案都不应涉及将一个字典复制到另一个
谢谢
jez*_*ell 10
将CollectionDataContract添加到Dictionary类:
有关使用集合数据协定实现字典的更多信息,请查看以下链接:
http://msdn.microsoft.com/en-us/library/aa347850.aspx