net core 返回值

//指定类下的子类
Type helloType = typeof(ActionResult); List<Type> types = new List<Type>(); foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) { foreach (var type in assembly.GetTypes()) { if (helloType.IsAssignableFrom(type)) { if (type.IsClass && !type.IsAbstract) { types.Add(type); } } } } for (int i=0;i<types.Count;i++) { sb.AppendLine(types[i].Name); } var ret = sb.ToString();
      public FileStreamResult(Stream fileStream, string contentType);
public FileContentResult(byte[] fileContents, string contentType);


            var t = new ContentResult();
            t.Content = "0000";
            return t;
 报错 
public
class AResult : ActionResult { // Properties public string Content { get; set; } public string ContentType { get; set; } public int? StatusCode { get; set; } public override Task ExecuteResultAsync(ActionContext context) { if (context == null) { throw new ArgumentNullException("context"); } return context.HttpContext.RequestServices.GetRequiredService<IActionResultExecutor<AResult>>().ExecuteAsync(context, this); } //pivotPoint.get_X(); 改为 pivotPoint.x; }

 

        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            
            //注册
            services.TryAddSingleton<IActionResultExecutor<AResult>>();

        }

注册后报错

 

 public class AResult : ActionResult
    {
        // Properties
        public string Content { get; set; }
        public string ContentType { get; set; }
        public int? StatusCode { get; set; }
        public override Task ExecuteResultAsync(ActionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            return context.HttpContext.RequestServices.GetRequiredService<IActionResultExecutor<AResult>>().ExecuteAsync(context, this);
        }
    }
    public class AResultExecutor : IActionResultExecutor<AResult>
    {
        private const string DefaultContentType = "text/plain; charset=utf-8";
        private readonly IHttpResponseStreamWriterFactory _httpResponseStreamWriterFactory;

        public AResultExecutor(IHttpResponseStreamWriterFactory httpResponseStreamWriterFactory)
        {
            _httpResponseStreamWriterFactory = httpResponseStreamWriterFactory;
        }

        public async Task ExecuteAsync(ActionContext context, AResult result)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }
            var response = context.HttpContext.Response;
            ResponseContentTypeHelper.ResolveContentTypeAndEncoding(
                null,
                response.ContentType,
                DefaultContentType,
                out var resolvedContentType,
                out var resolvedContentTypeEncoding);

                response.ContentType = resolvedContentType;
                var defaultContentTypeEncoding = MediaType.GetEncoding(response.ContentType);

            if (result.Content != null)
            {
                
                string content = result.Content;

                response.ContentLength = resolvedContentTypeEncoding.GetByteCount(content);
                using (var textWriter = _httpResponseStreamWriterFactory.CreateWriter(response.Body, resolvedContentTypeEncoding))
                {
                    await textWriter.WriteAsync(content);
                    await textWriter.FlushAsync();
                }
            }
        }
    }
         services.TryAddSingleton<IActionResultExecutor<AResult>, AResultExecutor>();

详细 

自定义ActionResult

 https://blog.csdn.net/u014690615/article/details/85999853

原文地址:https://www.cnblogs.com/enych/p/11469986.html