小编Raf*_*ues的帖子

如何使用属性的依赖注入?

在我正在创建的MVC项目中,我有以下内容RequirePermissionAttribute可以放在需要特定权限的任何操作上(本例中已简化):

public class RequirePermissionAttribute : ActionFilterAttribute, IAuthorizationFilter
{
    public Operation Permissions { get; set; }

    public RequirePermissionAttribute() { }

    public RequirePermissionAttribute(Operation permissions)
    {
        this.Permissions = permissions;
    }

    public bool AuthorizeCore(HttpContextBase httpContext)
    {
        IAuthorizationService authServ = new ASPNETAuthorizationService();
        return authServ.Authorize(httpContext);
    }

    public void OnAuthorization(AuthorizationContext filterContext)
    {
        Enforce.ArgNotNull(filterContext);

        if (this.AuthorizeCore(filterContext.HttpContext))
        {
            // code snipped.
        }
        else
        {
            // code snipped.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以问题显然是我的authorize属性依赖于ASPNETAuthorizationService我创建的属性.我不能去构造函数方式,因为属性是编译时检查的.

有一点需要提及的是,我正在使用自己制作的小IoC,并且它还没有支持属性注入(尚未).当然,如果我确实去了房产注入路线,我必须增加对它的支持(我必须做一些研究).

将某些东西注入属性类的最佳方法是什么?

.net c# asp.net-mvc dependency-injection

53
推荐指数
2
解决办法
4万
查看次数

在Web Api控制器中使用重定向(找到HTTP 302)

出于某种原因,我在尝试找出如何HTTP 302 Found从控制器内重定向()到绝对URL 时遇到了很多麻烦.

我试过这个:

this.Redirect("/assets/images/avatars/profile.jpg");
Run Code Online (Sandbox Code Playgroud)

但我得到一个异常抛出

抛出异常:System.dll中的"System.UriFormatException"

附加信息:无效的URI:无法确定URI的格式.

我在这里看到的每一个答案似乎都不适合我.我正在使用Web APIMVC 5.

c# asp.net-mvc redirect http-status-code-302 asp.net-web-api

7
推荐指数
1
解决办法
6415
查看次数

WebApi2 IHttpActionResult强类型返回值

这样做可能是不理想的:(一个大大简化的示例!)

[Serializable]
public class MyRecord
{
    public string key {get; set;}
    public string data {get; set;}
}

public async Task<IHttpActionResult> Get(string SomeKey)
{
    if(ExistsInDB(SomeKey))
    {
        return Ok(SomeRecordFromDB(SomeKey));  //SomeRecord() returns a POCO MyRecord.
    }
    else
    {
        //I know I can return NotFound() but not the focus of my Q
        return Ok(false);  //returns "False"
    }
}
Run Code Online (Sandbox Code Playgroud)

有效地表明对返回类型没有编译时错误检查。这个例子将返回一个JSon序列化的POCO类(在我的accept标头上设置了JSon),或者返回文本“ False”,这给客户端增加了类型检查的负担。

我不是故意设计的,但是我的团队正在从asmx / svc 重构大量代码,并且错误不断蔓延。当编译器帮助捕获这类错误而不是等待模块或单元测试时,我喜欢它。

返回使用强类型方法签名的正确方法(避免使用IHttpActionResult和Ok(),NotFound()等帮助器IHttpActionResult<T>吗?还是可以使用诸如a之类的 方法来确保返回正确的类型?

M.

c# generics httpresponse asp.net-web-api2

5
推荐指数
1
解决办法
3597
查看次数

PyCharm Jupyter细胞长度

我在PyCharm中制作一个Jupyter笔记本,但降价单元格不会调整到文本的长度,使得长文本难以阅读.

有没有办法改变这个?

pycharm jupyter

5
推荐指数
0
解决办法
113
查看次数

如何在Multibranch管道中为特定分支设置下一个内部版本号

我正在尝试以编程方式为我们的发行分支设置下一个内部版本号,但是我遇到了一个问题。

以下是我尝试过的两种方法:

def job = Jenkins.instance.getItem("master")
job.nextBuildNumber = env.BUILD_NUMBER + 1
job.saveNextBuildNumber()
Run Code Online (Sandbox Code Playgroud)

我也尝试使用CLI命令:

java -jar ${env.HOME} jenkins-cli.jar -s XX-JENKINS-SERVER" set-next-build-number 'Pipeline/master' 44
Run Code Online (Sandbox Code Playgroud)

但是没有运气。

请指导我如何为多分支管道设置下一个内部版本号。

jenkins multibranch-pipeline

4
推荐指数
2
解决办法
2667
查看次数

带有 APIRouter 插件系统的 FastAPI 无法正常工作

我正在尝试创建一个简单的可插入 FastAPI 应用程序,其中插件可以添加或不添加 API 端点

这是我的文件夹结构:

文件夹结构

服务器.py

import importlib
import pkgutil
from pathlib import Path

import uvicorn
from fastapi import FastAPI

PLUGINS_PATH = Path(__file__).parent.joinpath("plugins")
app = FastAPI()


def import_module(module_name):
    """Imports a module by it's name from plugins folder."""
    module = f"plugins.{module_name}"
    return importlib.import_module(module, ".")


def load_plugins() -> list:
    """Import plugins from plugins folder."""
    loaded_apps = []
    for _, application, _ in pkgutil.iter_modules([str(PLUGINS_PATH)]):
        module = import_module(application)
        print(
            f"Loaded app: {module.__meta__['plugin_name']} -- version: {module.__meta__['version']}"
        )
        loaded_apps.append(module)
    return loaded_apps


@app.get("/")
def main():
    return …
Run Code Online (Sandbox Code Playgroud)

python plugins python-importlib fastapi

3
推荐指数
1
解决办法
3162
查看次数