2010-11-11 32 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