如何在C#中引用不同程序集的内部委托

时间:2012-05-29 14:04:29

标签: c# reflection delegates

我有以下代码

public class MyClass{
     internal static Dictionary<string, ActivityManager.TagSerializer> TagHandlers = new Dictionary<string, ActivityManager.TagSerializer>(StringComparer.OrdinalIgnoreCase);
}

其中TagSerializer是ActivityManager中的委托,如下面的

public class ActivityManager
{ internal delegate string TagSerializer(string tag, ActivityTemplateVariable atv, ContentType ct, CultureInfo ci);}

因为myclass和ActivityManager在不同的程序集中,我的代码将返回错误

  

可访问性不一致:字段类型'System.Collections.Generic.Dictionary   &LT;串,Microsoft.Office.Server.ActivityFeed.ActivityManager.TagSerializer&GT;”比字段'MyClass.TagHandlers'

更难访问

ActivityManager类在第三方程序集中,我无法更改它。

如何使用反射来解决此问题?

1 个答案:

答案 0 :(得分:0)

您需要使用InternalsVisibleToAttribute