2011-07-13 17 views
0

我在類中有一個屬性,用作與傳統ASMX客戶端通信的WCf服務中的操作契約的回覆類型。如何限制集合以僅存儲特定類型的對象?

[XmlArrayItem(Type = typeof(Person), Namespace = "TestNamespace")] 
     [XmlArrayItem(Type = typeof(Department), 
      Namespace = "TestNamespace")] 
     public Collection<object> OrgCollection { get; set; } 

但如果消費者增加了一些其他類型的比預期的類型,服務崩潰,因爲XmlSerializer未能序列化這個屬性。

有沒有一種方法來獲得一些特定類型的集合?泛型將是它的答案,但不是完全實現一個新的集合類,我可以從一些現有的集合類「繼承」我的新類,以便我可以使用所有的功能?

+0

您是否需要實施一些Collection ,其中T可以是某些類中的一個? –

+0

@JooLio:我想實現一些集合,其中T1和T2可以是一些類。 – Learner

+0

然後使用'where'子句,例如'public class LimitedCollection where T:BaseType' –

回答

0

您可以將System.Collections.Generic.List用於特定類型的集合。如果你願意,你也可以從List繼承來添加你自己的功能。

+0

我想要一個能夠存儲某些指定類型對象的「單個」集合。列表允許我只存儲一種類型的對象。有多個列表可以解決這個問題,但如果我只有這樣一個屬性,則更好。 – Learner

0

看看System.Collections.Generic命名空間。

根據你的意見「我想要一個」單個「集合,它能夠存儲某些指定類型的對象。」
創建一些中產階級A

class A<T1, T2> {} 

,然後使用:

List<A<T1, T2>> OrgCollection { get;set } 

或使用Tuple<T1, T2>類(.NET 4.0)。

相關問題