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

本文关键字:程序集 内部 引用 | 更新日期: 2023-09-27 18:35:42

我有以下代码

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 在不同的程序集中,我的代码将返回错误

可访问性不一致:字段类型"系统.集合.通用.字典 <string,Microsoft.Office.Server.ActivityFeed.ActivityManager.TagSerializer>"比字段"MyClass.TagHandlers"更难访问

活动管理器类位于第三方程序集中,我无法更改它。

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

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

你需要使用 InternalsVisibleToAttribute。