2013-07-15 45 views
-1

我试图生成自定义XML文档,使用这个类:演员表对象到新对象扩展列表

[CollectionDataContract(Name="Applications", ItemName="Application")] 
public class ApplicationNamesList : List<string> { } 

在XML输出IM阿明应该是这样的

<Applications> 
    <Application>...</Application> 
    <Application>...</Application> 
    <Application>...</Application> 
</Applications> 

但是,一旦我有一个List<string>对象,并尝试将其转换为ApplicationNamesList,我会得到一个InvalidCastException

有什么基本的即时通讯不到这里吗?

+6

基本的东西:你有一个继承自B的类A.你有一个B的实例,但你希望能够将它转换为A.这与继承的工作方式相反。 –

回答

6

A List<string>根本不是ApplicationNamesList。你需要做这样的事情:

var result = new ApplicationNamesList(); 
result.AddRange(list); 

随着list是一个List<string>

有时,它帮助使用现实世界的例子:

每辆保时捷(=>ApplicationNamesList)是汽车(=>List<string>)。但并非每辆车都是保时捷。

+2

好吧,我只是要再次入学。 –

+0

保时捷示例+1 –