我想加载实现接口IFormLoadSubscriber
的所有窗体。获取使用VB.Net实现特定接口的所有类类型
接口
Namespace Interfaces
Public Interface IFormLoadSubscriber
End Interface
End Namespace
这时它不添加任何东西,订阅它就够了。
表
Namespace Forms
Public Class MainForm
Inherits Base.Base
Implements IFormLoadSubscriber
End Class
End Namespace
即Base.Base是强制执行碱行为的形式。
我有什么
Private Shared Function GetSubscribers() As List(Of Type)
Dim type = GetType(IFormLoadSubscriber)
Dim subscribers = AppDomain.CurrentDomain.GetAssemblies() _
.Where(Function(x) type.IsAssignableFrom(type)) _
.Select(Function(x) x.GetTypes())
Return subscribers
End Function
问题
预期上面的代码不起作用,因为它返回一个列表的大名单,包含各种类型。如果包含我的内容,则无法手动查找。无论如何,这不是我所需要的。
问题
如何更改上面的代码,以便它返回只有一个类(因为只有一个类实现IFormLoadSubscriber
),在这种情况下,我的MainForm?
看看这个部分:'type.IsAssignableFrom(type)' – sloth
看起来好像,看起来不正确......我该如何解决这个问题?我想我需要像'.Where(Function(x)x.GetType()。IsAssignableFrom(type))'''但是不会返回任何东西。 – Spikee