如何为Exception.Data添加IDictionary扩展方法
我想为IDictionary collection Exception.Data创建一个扩展方法,该方法允许我将项添加到字典中,而无需确保键是唯一的 我无法显示扩展方法如何为Exception.Data添加IDictionary扩展方法,exception,extension-methods,idictionary,Exception,Extension Methods,Idictionary,我想为IDictionary collection Exception.Data创建一个扩展方法,该方法允许我将项添加到字典中,而无需确保键是唯一的 我无法显示扩展方法 public static void AddUnique<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, TValue value) { } 我做错了什么?这可能吗?您在哪里声明这一点?理想情
public static void AddUnique<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, TValue value)
{
}
我做错了什么?这可能吗?您在哪里声明这一点?理想情况下,应该有一个静态类来包含此方法。然后,如果它位于不同的名称空间中,则需要确保该名称空间具有using语句
namespace MyNamespace
{
public static class MyExtensions
{
public static void AddUnique<TKey, TValue>(this IDictionary<TKey, TValue> dictionary,
TKey key,
TValue value)
{
// implementation code
}
}
}
注意:您还将key作为key,这是一个字符串文本。如果TKey不是字符串,则可能不起作用。扩展方法中的类型必须与Exception.Data的类型完全匹配,即System.Collections.IDictionary System.Collections.Generic.IDictionary System.Collections.IDictionary System.Collections.IDictionary没有类型参数,因此正确的代码应该是
public static void AddUnique<TKey, TValue>(this System.Collections.IDictionary dictionary, TKey key, TValue value)
{
}
它很好用。发布更多代码,如完整扩展方法类。发现问题-我的类型为System.Collections.Generic.IDictionary,而不是System.Collections.IDictionary。好好想想,谢谢你的帮助!扩展方法位于同一命名空间中的静态类内。发现问题-我的类型为System.Collections.Generic.IDictionary,而不是System.Collections.IDictionary。好好想想,谢谢你的帮助!
using MyNamespace; // if required
// in a method
exception.Data.AddUnique(key, value);
public static void AddUnique<TKey, TValue>(this System.Collections.IDictionary dictionary, TKey key, TValue value)
{
}