.net 序列化子资源时AddXmlDataContractSerializer失败

jv4diomz  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(135)

我正在使用AddXmlDataContractSerializerFormatters将XML中的数据序列化为输出流,但尽管它在JSON中运行良好,但却一再遇到以下问题
以下是我的设置类:

class ADto 
{
  public string Name { get; set; }
  public ICollection<BDto> BDtos { get; set; } = null;
}

class BDto 
{ 
  public string Description{ get; set; }
}

[Route("api/[controller]")]
[ApiController] 
public class AController : ControllerBase 
{
   public async Task<IActionResult> GetAs()
   { 
     // some logic

   }
}

错误“消息”:“发生意外错误。请稍后重试。\n错误:类型为”系统.集合.泛型.列表“1....模型.Dtos.BDto,....API,版本=1.0.0.0,区域性=中性,PublicKeyToken=null”,数据协定名称为“ArrayOfBDto:不应是http://schemas.datacontract.org/2004/07/....API.Models.Dtos'。请将任何未知类型静态添加到已知类型列表中-例如,通过使用KnownTypeAttribute特性或通过将它们添加到传递给DataContractSerializer的已知类型列表中。

ybzsozfc

ybzsozfc1#

尝试使用KnownTypeAttribute解决问题。
有关详细信息,请参阅the sample codes and comments
注意事项:
在您的程式码中,您可以使用KnownType这个字来取代较长的KnownTypeAttribute。

相关问题