C# 将列表对象强制转换为新对象扩展列表
我正在尝试使用以下类生成自定义xml文档:C# 将列表对象强制转换为新对象扩展列表,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我正在尝试使用以下类生成自定义xml文档: [CollectionDataContract(Name="Applications", ItemName="Application")] public class ApplicationNamesList : List<string> { } [CollectionDataContract(Name=“Applications”,ItemName=“Application”)] 公共类应用程序名称列表:列表{} 我正在查看的xml输出
[CollectionDataContract(Name="Applications", ItemName="Application")]
public class ApplicationNamesList : List<string> { }
[CollectionDataContract(Name=“Applications”,ItemName=“Application”)]
公共类应用程序名称列表:列表{}
我正在查看的xml输出应该如下所示
<Applications>
<Application>...</Application>
<Application>...</Application>
<Application>...</Application>
</Applications>
...
...
...
但是,一旦我有了一个列表
对象并尝试将其强制转换到应用程序名称列表
,我就会得到一个InvalidCastException
这里有什么基本的东西我没有得到吗?一个列表
根本不是一个应用程序名称列表
。您需要执行以下操作:
var result = new ApplicationNamesList();
result.AddRange(list);
将列表
作为列表
有时,使用真实世界的示例会有所帮助:
每辆保时捷(>
应用程序名称列表
)都是一辆汽车(>列表
)。但并不是每辆车都是保时捷。一些基本的东西:你有一个从B继承来的a级。你有一个B的实例,但你希望能把它转换成a。这与继承的工作原理正好相反。好吧,我只想再注册一次。保时捷的例子是+1