2012-09-14 41 views
20

我在這裏遇到了一些麻煩,在我們公司我們有一個使用自引用泛型的自動DA層。在Visual Studio 2010中,IDE對此非常滿意,然而2012年似乎遇到了困難,儘管當我們構建時,它成功了。Visual Studio 2012 - 自引用泛型解析錯誤

下面是一個例子:

Example of parsing error

的數據對象的定義如下:

[TypeDescriptionProvider(typeof(HyperTypeDescriptor.HyperTypeDescriptionProvider))] 
public class DataObject<T> : 
    INotifyPropertyChanged, 
    IDataErrorInfo, 
    IEditableObject, 
    IDataObject 
    where T : 
     DataObject<T>, 
     new() 

我意識到這不是最簡單的定義,但它的法律,和它建立非常好。

但是,這個'問題'導致智能感知失敗,以及'去定義'功能,這不用說是令人沮喪的。

我試過刪除並重新添加引用,但問題仍然存在。

VS2010非常高興,而且我已回去使用,VS2012非常好,響應速度很快,但是如果這個問題仍然存在,那麼這個問題就會一直存在。

任何人有任何想法?


想要讓一對夫婦的事情說清楚,這個問題是間歇一個(這是一種痛苦作爲它真的很難跟蹤的根本原因)。

它打破了intellisense和'去定義'到處,不只是爲錯誤的類。

我會去建立一個示例解決方案來提交連接,但最近時間不在我身邊。

+1

你收到的錯誤或例外是什麼? –

+0

我剛剛重新打開了VS20112,試圖複製上面的曲線紅色所表示的錯誤,但此時它並沒有執行此操作,但它會在某個時刻再次執行此操作。基本上上面的錯誤是它找不到類的定義 - 如果我做了Ctrl +。它會提供爲我生成類型,儘管是在需要的類型。 – Marlon

+7

選擇完整框架而不是客戶端配置文件。如果這沒有幫助,那麼你真的需要發佈到connect.microsoft.com,唯一可以解決這個問題的人。他們需要一個好的repro項目。 –

回答

1

如果使用Visual Studio的兩個實例(例如兩個Visual Studio 2010)打開相同的解決方案/項目,可能會發生這種情況。 Intellisense機制使用Visual Studio實例無法真正共享的.NCB文件。在這種情況下,智能感知行爲很奇怪。

+0

西蒙,出於興趣,你知道卸載/重新加載項目是否會導致VS重建這些.NCB文件 - 因爲這樣做似乎解決了智能感知問題。 – Marlon

+0

不,我不知道這一點,但那不會讓我感到驚訝。我認爲兩次開放同一個項目的結果是不確定的(關於Intellisense) –

1

聽起來很愚蠢,但我遇到了類似的問題,通過intellisense引入或更改了新代碼。我把它追蹤到基本上需要執行保存所有,或者有時甚至乾淨,並重新編譯之前,它intellisense正確承認代碼有效。

在VS2010中也會發生類似情況,如果您創建類結構,則可以重複該類,然後在另一個類上編輯代碼以使用它,然後反彈回來,破解類函數並添加新函數而不進行任何保存。

1

有時候,情況並非總是如此,ReSharper可能會導致引用和GTD功能問題。你有沒有安裝它?

+0

nope,乾淨的VS安裝,除了預裝的微軟安裝外沒有安裝插件。 – Marlon