小编ako*_*ata的帖子

您是否可以注册Web API ActionFilter而无需全局注册?

我已经看到如何在众多帖子中全局执行此操作并使其在我的代码中工作.问题是它在每次调用时触发这不是我想要的,我只希望它触发对我用该属性修饰方法的方法的调用:

public class MyController : ApiController
{
    [MyAttribute]
    public void MethodA()
    {
        // Do Work - should have called the attribute filter
    }

    public void MethodB()
    {
        // Do Work - should NOT have called the attribute filter
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎是很基本的,我和我失去了一些东西,但只有这样,我可以通过它注册获取属性火就大家global.asax使用GlobalConfiguration.Configuration.Filters.Add(new MyAttribute());,导致其开火,请求两MethodAMethodB.有没有办法注册属性,只触发标记它的方法?我试过用AttributeUsage无济于事.

编辑添加了每条评论的属性代码,但必须删除内部工作.它正在解雇所有请求......

[AttributeUsage(AttributeTargets.Method)]
public class MyAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        // Do work
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑11/25 除了下面我接受答案的信息之外,我想补充说,之前的开发人员已经删除了默认的ActionDescriptorFilterProvider,并且需要注释掉以下代码,以便自定义操作过滤器的默认行为生效:

var providers = GlobalConfiguration.Configuration.Services.GetFilterProviders();
var defaultprovider …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api

4
推荐指数
1
解决办法
4448
查看次数

如何使用 Dapper 连接到 ProgressDB 数据提供程序?

请阅读答案的评论,以更全面地了解问题是/曾经是什么

首先,我通读了很多与此相关的其他 SO 问题,但仍然无法在基本设置中使用它。这是我已经阅读的相关问题:

使用 OleDb 在 Dapper 中传递查询参数

编辑:下面的故障排除有点误导。唯一出错的是 Github 示例中的查询语法在使用 ProgressDB OpenEdge 驱动程序时无效。

该问题的答案以及记录在案的 Git 示例中给出的示例的问题在于,没有使用真正的 ODBC 对象,而是使用了一个OleDbConnection对象。这会导致我尝试使用 Dapper 的场景出现问题。我的场景的一些背景和限制:

  • 我无法更改 DB 技术,我们正在连接到 Progress DB。连接到数据库的连接字符串: connectionString="PROVIDER= MSDASQL ;DRIVER={Progress OpenEdge 10.2A Driver};HOST=...;PORT=...;DB=mfgsys;UID=...;PWD= ...;DIL=READ UNCOMMITTED” 注意提供者:MSDASQL
  • 根据 MSDN,https://msdn.microsoft.com/en-us/library/a6cd7c08%28v=vs.110%29.aspx - “ OLE DB 的 .NET Framework 数据提供程序不适用于 OLE DB 提供程序对于 ODBC (MSDASQL)。要使用 ADO.NET 访问 ODBC 数据源,请使用 .NET Framework Data Provider for ODBC。
  • 当我尝试将OdbcConnection对象与 Dapper一起使用时,出现以下错误:“ System.Data.Odbc.OdbcException : ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Syntax error …

c# progress-db openedge dapper

4
推荐指数
1
解决办法
3398
查看次数

标签 统计

c# ×2

asp.net-web-api ×1

dapper ×1

openedge ×1

progress-db ×1