2009-06-24 55 views
-3

不過,我覺得我已經解決了這個問題,查看Windows窗體,但回:某種錯誤,可能是當設計師

代碼生成屬性「SelectedPeople失敗。錯誤是:'在Assembly'ECS,版本= 1.0.0.0,Culture = neutral,PublicKeyToken = null'中鍵入'ECS.Entities.Persistency.Person'未標記爲可序列化。

錯誤消息的屬性是一個List(Of Person),由於某種原因,它觸發了這個錯誤,對於我所做的幾乎任何事情,它變得非常討厭。

好的回答這裏的答案是關於這個問題的更多信息。

是的,它是在設計時,基本上任何時候都會發生一個打開一個包含Selected屬性的UserControl的窗體,即使我沒有專注於窗體,有時也會發生,如果我嘗試編譯/運行它發生和消息以一個確定的消息框的形式出現,ECS.Entities.Persistency.Person只是一個LINQ to SQL生成類,這應該不重要的問題,雖然我在發佈之前添加了該屬性。

發生這種情況的原因是因爲設計器試圖將屬性放在屬性面板上,爲此發生序列化。爲了幫助我嘗試通過使用這個屬性來隱藏設計器的屬性。

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _ 
    <Browsable(False)> _ 
    Public Property SelectedPeople() As List(Of Person) 
     Get 
      Return _SelectedPeople 
     End Get 
     Set(ByVal value As List(Of Person)) 
      _SelectedPeople = value 
     End Set 
    End Property 

這是工作之前,但由於一些未知的原因,它再次開始。

如果你都知道得到這個固定的東西我會apreciate。

感謝

+1

你如何期待任何人有任何想法你想問什麼?你沒有提供任何細節。什麼是「ECS.Entities」?這種錯誤在什麼情況下發生? – 2009-06-24 16:45:44

+0

那麼我的朋友,我在那裏發佈了錯誤信息,我還描述了給出錯誤的屬性和情況。 我認爲如果您有問題,那已經足夠了。 – Oakcool 2009-06-24 17:02:09

回答

1

設計者並不總是似乎給出準確的錯誤消息。當設計者拋出這樣的錯誤時,通常最好看看最近你在控件上改變了什麼。它完全有可能與所述的錯誤信息無關。

此外,設計師有時會進入不良狀態並拋出錯誤消息。有時候,重新啓動和重建會讓事情變得更糟。

1

這聽起來像你需要Serializable屬性添加到ECS.Entities.Persistency.Person。

這將是這個樣子:

<Serializable()> _ 
Class Person 
    'Class definition here 
End Class 
0

如果其他人遇到同樣的問題,即使在重建項目後也無法使其工作,我在Form1.Designer.cs中的InitializeComponent()方法中替換了此缺失行後修復了它:

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));