2010-11-11 29 views
0

我定义了Date的下列扩展名?数据类型使用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方法不再从我的项目甚至尽管我已经引用了现在包含扩展的Class项目。

这是编译器扩展的限制吗?你有没有使用它们的可重用性?

回答

0

您需要在另一个项目的目标文件中包含.ToObject命名空间(包含Nullable日期扩展名的命名空间)。

+0

我不知道是什么名字空间。如果将代码直接复制到另一个项目中,代码将起作用,这向我建议所需的引用已包含在两个项目中。 – ChadD 2010-11-12 13:17:33

+0

这不仅仅是参考的问题。您需要为目标文件添加“imports”语句,导入包含扩展方法的名称空间。 – 2010-11-14 17:24:08

+0

没有。没有工作。试试看看。 – ChadD 2010-11-16 23:47:39