如何判断DLL是否可以隐藏?

时间:2013-04-04 20:19:40

标签: .net dll comvisible

我有一个DLL可能会也可能没有将其ComVisible属性设置为true。我不确定它是如何构建的,或者具有什么属性?我所知道的是它是一个.Net DLL。简单地说,我怎么知道它是否可见?

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

这样的东西?

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

bool comVisible = asm.GetCustomAttributes()
                     .OfType<ComVisibleAttribute>()
                     .First()
                     .Value;