如果 base class 是通用的并且在 class 库中,则 Show Base Class 会抛出错误
Show Base Class throws error if base class is generic and in a class library
假设我有一个 class 库项目 (Library
),其中包含 class 个:
Public Class SomeClass(Of TTypeA, TTypeB)
然后,在另一个项目 UIProject
的不同解决方案中,我定义了一个 class 派生自(继承)SomeClass:
Imports Library
Public Class SomeDerivedClass
Inherits SomeClass(Of String, Boolean)
当我将 class 库引用添加到 UIProject
时,我将 Library.pdb 和 Library.xml 与 Library.dll(在同一文件夹中)一起包含在内。
现在,在 UIProject
中,我创建了一个 ClassDiagram (ClassDiagram1.cd),并在 SomeClass
class 中添加。到目前为止一切顺利。
下一步是右键单击图表中的 SomeClass
,然后从下拉列表中单击 select "Show Base Class"。此时,我得到错误:
Error HRESULT E_FAIL has been returned from a call to a COM
component.
如果我对 SomeClass
的非通用版本执行相同的操作,那么 SomeClass
包含在 class 图表中,没问题。
ActivityLog.xml 中未显示任何错误;也不在 Windows 事件查看器中。
这是 Visual Studio 中的错误吗(在这种情况下我会报告);还是我做错了什么(如果是这样,我可以做任何其他错误日志或跟踪来进一步缩小问题范围)?
答案似乎是 COM 不适用于泛型;并且它在 VS2017 中有效。
假设我有一个 class 库项目 (Library
),其中包含 class 个:
Public Class SomeClass(Of TTypeA, TTypeB)
然后,在另一个项目 UIProject
的不同解决方案中,我定义了一个 class 派生自(继承)SomeClass:
Imports Library
Public Class SomeDerivedClass
Inherits SomeClass(Of String, Boolean)
当我将 class 库引用添加到 UIProject
时,我将 Library.pdb 和 Library.xml 与 Library.dll(在同一文件夹中)一起包含在内。
现在,在 UIProject
中,我创建了一个 ClassDiagram (ClassDiagram1.cd),并在 SomeClass
class 中添加。到目前为止一切顺利。
下一步是右键单击图表中的 SomeClass
,然后从下拉列表中单击 select "Show Base Class"。此时,我得到错误:
Error HRESULT E_FAIL has been returned from a call to a COM component.
如果我对 SomeClass
的非通用版本执行相同的操作,那么 SomeClass
包含在 class 图表中,没问题。
ActivityLog.xml 中未显示任何错误;也不在 Windows 事件查看器中。
这是 Visual Studio 中的错误吗(在这种情况下我会报告);还是我做错了什么(如果是这样,我可以做任何其他错误日志或跟踪来进一步缩小问题范围)?
答案似乎是 COM 不适用于泛型;并且它在 VS2017 中有效。