2014-12-04 45 views
0

我完全不知道爲什麼設計器序列化在這種情況下沒有完全正常工作。 對我來說,它看起來像設計師將不會連載2老二層(Parent.ClassProperty.ClassProperty.ValueProperty)在designer.cs中沒有序列化的C#屬性(如果它的子 - 子關係)

這是我(簡化) `

class MyClassA : System.Windows.Forms.Panel 
{ 
    public string Name{get; set;} 

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    public MyClassB Property1 {get; private set;} 
} 

class MyClassB 
{ 
    public string Name{get; set;} 

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    public MyClassC Property1 {get; private set;} 

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    public BindingList<MyClassC> Test{get; private set;} 
} 

class MyClassC 
{ 
    public string Name{get; set;} 
} 

`

在designer.cs預期的結果是:

`

classA1.Name = "Test1"; 
classA1.Property1.Name = "Test2"; 
classA1.Property1.Property1.Name = "Test3"; 

`

,但我得到

`

classA1.Name = "Test1"; 
classA1.Property1.Name = "Test2"; 

`

有趣的事實:綁定列表屬性系列化對於B工作正常,但不是C類屬性。我絕對不知道爲什麼!

有人可以幫助指出問題嗎?

回答

0

試試這個

[Serializable] 
class MyClassB 
{ 
public string Name{get; set;} 

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
public MyClassC Property1 {get; private set;} 

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
public BindingList<MyClassC> Test{get; private set;} 
} 

[Serializable] 
class MyClassC 
{ 
public string Name{get; set;} 
} 

放[Serializable接口]在你的類,以序列化

+0

讓我知道如果你仍然得到錯誤? – 2014-12-04 06:56:10

+0

我已經嘗試了B和A,但它仍然是一樣的。我需要一個自己的設計器序列化器嗎? – IDisposable 2014-12-04 07:28:58

相關問題