启动时,我将所有app.config值加载到名为的类中ConfigValues
。我的数据库仅需要其中的一些,因此我有一个IDatabaseConfig
仅指定其所需参数的接口。这样,当我通过构造函数注入创建数据库连接类时,我可以要求它传递任何实现的东西IDatabaseConfig
。
我想做的是在ConfigValues
类上声明多个接口,并允许某些属性同时实现多个协定。
这是一个小代码示例:
Public Interface IAppConfig
Property Server As String
Property ErrorPath As String
End Interface
Public Interface IDatabaseConfig
Property Server As String
End Interface
Public Class ConfigValues
Implements IAppConfig
Implements IDatabaseConfig
Public Property ErrorPath As String Implements IAppConfig.ErrorPath
'need different syntax - does not compile:
Public Property Server As String Implements IAppConfig.Server,
Implements IDatabaseConfig.Server
End Class
在VB.NET中,是否有一种方法可以指定单个属性满足多个接口的约定?
这与SO上的这两个问题完全相反,这两个问题试图将同一接口名称拆分为两个不同的属性。
作为一种巧妙的解决方法,我可以让两个属性都引用同一个支持属性,但是我必须至少更改其中一个的属性名称,从而更改API。
Private _server As String
Public Property ServerForApp As String Implements IAppConfig.Server
Get
Return _server
End Get
Set(value As String)
_server = value
End Set
End Property
Public Property ServerForDatabase As String Implements IDatabaseConfig.Server
Get
Return _server
End Get
Set(value As String)
_server = value
End Set
End Property
我认为您想要的东西得到了支持,您只是语法错误:
Public Class ConfigValues
Implements IAppConfig
Implements IDatabaseConfig
Public Property ErrorPath As String Implements IAppConfig.ErrorPath
Public Property Server As String Implements IAppConfig.Server,
IDatabaseConfig.Server
End Class
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句