2010-11-11 3 views
0

Я определил следующее расширение Даты? Тип данныхРасширение закрытых встроенных типов данных с помощью CompilerServices.Extensions - Нет способа повторно использовать?

'Nullable Date Extensions 
<System.Runtime.CompilerServices.Extension()> _ 
Public Function ToObject(ByVal thisInstance As Date?) As Object 
    Return If(thisInstance.HasValue, CType(thisInstance, Object), DBNull.Value) 
End Function 

Который дал мне односложную возможность сделать это:

Public Property MyDateTime() As Date? 

rowTest.Item("MyDate") = Me.MyDate.ToObject 

Но когда я переехал мое определение компилятора в отдельный DLL, я метод ToObject больше не был доступны из моего проекта даже хотя я ссылался на проект класса, который теперь содержал расширение.

Является ли это ограничением для расширений компилятора? Хоу, вы получаете возможность повторного использования?

ответ

0

Вам нужно будет указать пространство имен .ToObject (пространство имен, содержащее ваши Nullable date extensions) в вашем целевом файле в другом проекте.

+0

Я не знаю, что такое пространство имен. Код работает, если он скопирован непосредственно в проект eiether, что говорит мне о том, что требуемые ссылки уже включены в оба проекта. – ChadD

+0

Это не просто ссылки. Вам нужно будет добавить оператор «import» в ваш целевой файл, импортируя пространство имен, содержащее ваш метод расширения. –

+0

Нет. Не работает. Попробуй и посмотри. – ChadD