小编Joh*_*rer的帖子

Ninject WebAPI由于已经处理了DbContext,因此无法完成操作

所以我使用的建议与属性和过滤器一个简单的存储库模式在这里,因为我使用的是Ninject.Web.WebApi-RC从NuGet包.

这适用于第一个请求,但由于我有我DbContext的请求范围,因此它会在所有后续请求中处理.

这是我的属性:

public class CommunicationKeyValidationAttribute : FilterAttribute
{
}
Run Code Online (Sandbox Code Playgroud)

这是我的过滤器:

public class CommunicationKeyValidationFilter : AbstractActionFilter
{
    public CommunicationKeyValidationFilter(IRepository repository)
    {
        this.repository = repository;
    }
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        // do stuff
    }
 }
Run Code Online (Sandbox Code Playgroud)

这是我的存储库:

public class Repository : IRepository
{
    public Repository(MyDbContext dbContext)
    {
        this.dbContext = dbContext;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的Ninject绑定:

this.Kernel.Bind<MyDbContext>().ToSelf().InRequestScope();
this.Kernel.Bind<IRepository>().To<Repository>().InRequestScope();
this.Kernel.BindHttpFilter<CommunicationKeyValidationFilter>(FilterScope.Action)
        .WhenActionMethodHas<CommunicationKeyValidationAttribute>()
        .InRequestScope();
Run Code Online (Sandbox Code Playgroud)

我的控制器看起来像这样:

public class HomeController 
{
    [CommunicationKeyValidation]
    public ActionResult Index()
    {
        // do stuff
    }
Run Code Online (Sandbox Code Playgroud)

这里的问题CommunicationKeyValidationFilter …

entity-framework ninject repository asp.net-web-api

10
推荐指数
1
解决办法
2304
查看次数

Android响应PN532 InListPassiveTarget

我有一个奇怪的情况,我试图在标签模拟和标签阅读器模式之间切换我的PN532.读者持续约70ms,标签仿真运行约600ms.

我想要发生的是,当我将我的Android设备放在天线附近时,它会读取模拟标签.当我将PN标签保存到PN532时,它应该读取标签.

我的解决方案有点工作,但我看到一个奇怪的情况,当我打电话readPassiveTargetID测试无源标签的存在时,Android正在响应.这样会很好,但我认为Android正在启动一项服务,阻止它阅读模拟标签.

在测试时,有时设备根本不与PN532通信,但是当他们这样做时,最常用的是读卡器模式.以下是发生这种情况时得到的输出:

Nexus 5x(Android 6):

<< 4A 1 0
>> 4B 1 1 0 4 60 4 1 2 3 4 5 78 80 71 0
Run Code Online (Sandbox Code Playgroud)

Galaxy S4(Android 5.0.1):

<< 4A 1 0
>> 4B 1 1 0 4 20 4 8 87 F6 62 5 78 B3 70 2
Run Code Online (Sandbox Code Playgroud)

5x通常会在一秒左右后读取模拟标签,但是当我在两种模式之间切换时,S4很少会读取标签.当我只运行标签模拟时,两个设备都可以正常运行.

我在想我可能会遇到一些问题.

  1. 我是否需要做一些特殊的事情来切换模式?切换时,我实际上没有重置或重新初始化PN532.
  2. 是否有一个命令我可以发送告诉设备停止收听或我可以发送的设置将解决此问题?

android nfc nfc-p2p contactless-smartcard hce

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