• 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

  • 相关阅读:
    Struts2的配置中:Could not find action or result 问题的解决方法
    Oracle 数据库 Record is locked by another user 问题解决办法
    设计模式六大原则(2):里氏替换原则
    在PL/SQL中 自动复制转换StringBuffer的SQL
    反射setAccessible()方法
    对允许任意图片上传的发布内容模式的啊哈的想法
    如果你真的想做一件事,你一定会找到一个方法;如果你不想做一件事,你一定会找到一个借口.
    xaml 的 intellisense失效的解决办法
    Blog技术词汇之Rss篇 什么是Rss以及其定义[翻译]
    多个存储过程之间相互调用的原子性问题
  • 原文地址:https://www.cnblogs.com/enych/p/11469986.html
Copyright © 2020-2023  润新知