2

我有一个 DLL,它的 ComVisible 属性可能设置为 true,也可能不设置。我不确定它是如何构建的,或者具有什么属性?我所知道的是它是一个.Net DLL。简而言之,我如何判断它是否是 Com Visible?

抱歉,如果这是重复的。我对这个返回结果的所有搜索都显示了如何使DLL ComVisible。我知道该怎么做。

4

2 回答 2

3

您可以使用反射检查程序集的ComVisibleAttribute

private static bool IsComVisible(string assemblyPath)
{
  var assembly = Assembly.LoadFile(assemblyPath);

  var attributes = assembly.GetCustomAttributes(typeof(ComVisibleAttribute), false);

  if (attributes.Length > 0)
  {
    return ((ComVisibleAttribute)attributes[0]).Value;
  }

  return false;
}
于 2013-04-04T20:44:54.957 回答
0

像这样的东西?

Assembly asm = Assembly.GetExecutingAssembly(); //Assembly.LoadFile, Assembly.Load

bool comVisible = asm.GetCustomAttributes()
                     .OfType<ComVisibleAttribute>()
                     .First()
                     .Value;
于 2013-04-04T20:44:32.817 回答