2011-02-01 2 views
1

ОК, я должен начать говорить, что я работаю с Visual Basic. Проблема заключается в том, что у меня есть объект Entity Framework, и я хочу, чтобы указать, что этот объект реализует интерфейс, например:Как указать, что объект Entity Framework реализует интерфейс?

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

Эти свойства Allready в объекте. В C# я сделал это, просто объявив частичный класс объекта и указав, что реализует этот интерфейс, но в базовом режиме не работает. Я полагаю, это из-за языка sintaxis, который используется для объявления того, что свойство реализует некоторое свойство интерфейс, например:

Public Property created_at() As Date Implements ICatalog.created_at 

Так есть ли другой способ достичь этого?

+0

Я не слишком много знаю о VB, но если я правильно помню, VB не поддерживает частичные классы. Если вам нужно проверить, реализует ли объект интерфейс во время выполнения, попробуйте применить этот объект к указанному интерфейсу с эквивалентом ключевого слова «как» в C#. Если объект имеет значение null после броска, то вы знаете, что объект не реализует этот интерфейс. Это то, чего вы пытались достичь? – jonnyb

+0

VB Поддерживает частичные классы. –

ответ

2

Я нашел ответ в другом cuestion после больше времени прибегая к помощи, я не нашел это с помощью поисковой системы StackOverflow, ссылка:

Partial Classes, LINQ, Interfaces and VB.NET

Просто для записи Visual Basic отстой

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.

+0

PS: Обычно я не помещаю Interfaces в классы, это просто в качестве примера. –

Смежные вопросы