我有一个DLL可能会也可能没有将其ComVisible属性设置为true。我不确定它是如何构建的,或者具有什么属性?我所知道的是它是一个.Net DLL。简单地说,我怎么知道它是否可见?
很抱歉,如果这是重复的话。我对此返回的所有搜索结果都显示如何制作 DLL ComVisible。我知道该怎么做。
答案 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;