当前位置: 首页 > 知识库问答 >
问题:

发生内部异常:类型“f_uAnonymousType2`6[…]”无法序列化

曾洲
2023-03-14

我在ASP. net中编写了一个endpoint(应该会返回一个漂亮的JSON),下面的错误让我困惑,因为通过我的Swagger界面,一切正常,但是如果我在浏览器中直接调用endpoint,http://localhost:63291/api/AutoUpload/我收到:

出现内部异常:类型

这看起来很奇怪,因为我认为我确实实现了一个无参数(默认)构造函数。我的代码如下

using AutoMapper;
using myProject.API.Filters;
using myProject.API.Models;
using myProject.Entity.DAL;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Description;
namespace myProject.API.Controllers
{
    [UserAuthenticationFilter]
    public class AutoUploadController : BaseController
    {
        public AutoUploadController() {
            System.Diagnostics.Debug.WriteLine("Parameterless default constructor only for serialization");
        }

        // GET: api/AutoUpload
        [ResponseType(typeof(IEnumerable<FilesDetailsDto>))]
        public IHttpActionResult GetAutoUpload(string OptionString = "status")
        {
            if (OptionString == "status")
            {
                var rootLocation = ConfigurationManager.AppSettings["ROOT-FOLDER-LOCATION"];
                string[] entries = Directory.GetFiles(rootLocation, "*.csv", SearchOption.AllDirectories);
                var convList = entries.Select(x => new
                {
                    FullPath = x,
                    LastModifed = System.IO.File.GetLastWriteTime(x)
                });

                return Ok(convList.AsEnumerable());
            } // end IF-clause for optional parameter
            else
            {
                return NotFound();
            }
        }
    }
}

上述代码使用以下数据传输对象(DTO)定义:

using System;

namespace myProject.API.Models
{
    public class FilesDetailsDto
    {
        public string FileName { get; set; }
        public DateTime LastModifiedOnFilesystem { get; set; }
    }
}
  • Datacontract例外。无法序列化

共有1个答案

武晨
2023-03-14

您返回的是匿名类型的集合,而不是定义为属性的实际类型,该属性可能是此错误的罪魁祸首。

在使用Select此处时,您可以尝试更明确一些,例如:

var convList = entries.Select(x => new FilesDetailsDto()
            {
                FullPath = x,
                LastModifiedOnFilesystem = System.IO.File.GetLastWriteTime(x)
            });
 类似资料:
  • 我得到了json文件和第三方类:Dealer和接口IDealerAttributes(我不能更改它们中的任何一个);(我删除包名并导入以使代码简单) 一旦我使用: 我将从这一行得到异常: 我如何读取这个基于Dealer.class、IdeAlerAttributes的json文件? 但我可以添加一个类,假设: 因为我是JSON/GSON的新手,你能给我详细的指导来帮助我吗?多谢了。 [添加]考虑一

  • 问题内容: 是什么导致此异常,我无法找出原因。 根本原因: 码: 我在构造函数中初始化标签: 编辑 登录setter方法时出现异常: 问题答案: 我的猜测是,Hibernate使用自己的Set实现(PersistentSet)来调用您的setter,该实现实现了延迟加载,并且在调用setter时尚未初始化。由于您在此集合上调用了一个方法,因此它已经使集合在加载阶段本身​​处于加载阶段,这使Hibe

  • 内部类 Object Array Values (ruby 1.9 特性) Binding Continuation Data Exception (参考异常类) Dir FalseClass File::Stat Hash IO File MatchData Method (UnboundMethod) (ruby 1.7 特性version 1.6以前的位置) Module Class Num

  • 我有一门课是这样的: 但是当我试图序列化它时,我收到一个错误,上面写着“试图序列化java.lang.class:java.lang.字符串。忘记注册一个类型适配器了吗?”。所以我创建了这个适配器: } 并登记如下: 但我还是犯了同样的错误<我做错了什么 适配器的实现看起来正常吗?

  • 6. 内建的异常 异常应该是类对象。异常定义在模块exceptions中。该模块不需要显式导入:这些异常在内置命名空间中有提供,就和exceptions模块一样。 对于类异常,如果在try语句的except子句中提到一个类,该子句还会处理任何从那个类派生的异常类(不是它派生自的异常类)。通过子类化得到的两个不相关的异常类永远不会相等,即使它们具有相同的名称。 下面列出的异常可以通过解释器或内置函数

  • 我试图显示用户图像URL在CircleAvatar();它显示一个空错误,即使我已经提供了它。还是我做错了? 首先,我调用Auth方法和设置图像字符串img, 然后在initstate中实例化 然后把它放在抽屉里()