【问题标题】:How to indicate that an Entity Framework object is implementing an interface? [duplicate]如何指示实体框架对象正在实现接口? [复制]
【发布时间】:2011-02-01 16:52:11
【问题描述】:

好的,我必须开始说我正在使用 Visual Basic。问题是我有一个Entity Framework对象,我想指出这个对象实现了一个接口,例如:

Public Interface ICatalog
   Property created_at() As Date
   Property id() As Long
End Interface

这些属性已经在对象中。在 c# 中,我只是通过声明对象的部分类并指示实现该接口来完成此操作,但基本不起作用,我认为这是因为用于声明属性正在实现的某些属性的语言 sintaxis接口,例如:

Public Property created_at() As Date Implements ICatalog.created_at

那么有没有其他方法可以做到这一点?

【问题讨论】:

  • 我对VB不太了解,但是如果我没记错的话,VB不支持部分类。如果您需要检查一个对象是否在运行时实现了一个接口,请尝试将该对象强制转换为与 C# 中的“as”关键字等效的指定接口。如果对象在强制转换后为 null,那么您就知道该对象没有实现该接口。这是您想要完成的任务吗?
  • VB 支持部分类。

标签: vb.net oop entity-framework


【解决方案1】:

看看这个例子。

Namespace MyAppDomain
    Public Interface IFoo
        Sub Bar()
    End Interface

    Public Interface IPerson
        Function Gender() As String
    End Interface

    Public Class MyFooPerson : Implements IFoo, IPerson
        Public Sub New()
        End Sub

        Public Sub Bar() Implements IFoo.Bar
        End Sub

        Public Function Gender() As String Implements IPerson.Gender
            Return Nothing
        End Function

    End Class
End Namespace

您会注意到MyFooPerson 类实现了IFoo 接口以及IPerson 接口。然后每个方法实现相应的接口方法。

您的示例没有说明包含Public Property created_at() As Date Implements ICatalog.created_at 的类是否正在实现ICatalog 接口。

【讨论】:

  • PS:我通常不会将接口与类放在一起,它只是作为示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多