小编Ste*_*ter的帖子

一种在ASP.NET MVC中排除动作过滤器的方法?

我在ASP.NET MVC中遇到过几个案例,我想在除一两个动作之外的每个动作上应用动作过滤器.例如,假设您有一个AccountController.其中的每个操作都需要用户登录,因此您在控制器级别添加[授权].但是说你想在AccountController中包含登录页面.问题是,发送到登录页面的用户未经授权,因此这将导致无限循环.

明显的修复(除了将Login操作移动到另一个控制器之外)是将[Authorize]从控制器移动到除Login之外的所有操作方法.嗯这不好玩,特别是当你有很多方法或忘记将[授权]添加到新方法时.

Rails通过排除过滤器的功能简化了这一过程.ASP.NET MVC不会让你.所以我决定让它成为可能,它比我想象的要容易.

    /// <summary>
/// This will disable any filters of the given type from being applied.  This is useful when, say, all but on action need the Authorize filter.
/// </summary>
[AttributeUsage(AttributeTargets.Method|AttributeTargets.Class, AllowMultiple=true)]
public class ExcludeFilterAttribute : ActionFilterAttribute
{

    public ExcludeFilterAttribute(Type toExclude)
    {
        FilterToExclude = toExclude;
    }

    /// <summary>
    /// The type of filter that will be ignored.
    /// </summary>
    public Type FilterToExclude
    {
        get;
        private set;
    }
}

/// <summary>
/// A subclass of ControllerActionInvoker …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc action-filter

26
推荐指数
1
解决办法
2万
查看次数

RESTful API中的聚合数据

有一个有趣的HTTP API问题,我想要一些意见.我的API允许人们以1-10的比例评分.我有一个GET /ratings列出用户评级的端点.我们还想要一种方法来显示用户每天的平均评分.所以我的问题 - 摘要应该是相同的网址,比如/ratings?data=summary,或者应该是它自己的网址/ratingsummaries还是/ratings/summary

通常情况下,我认为没有正确的答案.摘要只是收视率的另一种观点,在这种情况下,它应该是评级资源,应该是其中的一部分/ratings吗?或者,是对自己的资源进行评级的总结,在这种情况下,它应该得到自己的网址/ratingsummaries吗? /ratings/summary看起来也不错,但它并不是真正的评级子资源.

期待您的反馈.谢谢大家!

api rest

15
推荐指数
1
解决办法
5776
查看次数

如何在React Native中从Java写入console.log

我正在为iOS和Android构建一个React Native原生模块(又名"bridge"),需要使用本机代码(Objective C和Java)登录JS控制台.这在iOS中很容易完成,RCTLog但我无法弄清楚如何在Java中完成.

我试过,Log.i但这些消息不会转发到Javascript.

在这一点上我唯一能想到的就是从Java模块发出一个JS事件,并且在JS端有一个处理程序只是调用console.log消息,但这是一种非常迂回的方式.

我希望能够做一些类似this.getReactApplicationContext().log("see me in the JS console")但没有骰子的事情.有人知道怎么做吗?

react-native react-native-android

9
推荐指数
1
解决办法
938
查看次数

节点生成 std​​out.on 数据延迟

我正在检查 Linux 上的 USB 驱动器删除情况。我只是使用 child_process.spawn 监视命令行进程的输出。但由于某种原因,直到打印了 20 行之后,子进程的 stdout 数据事件才会发出,这使得它无法检测到已删除的驱动器。多次卸下驱动器后,它终于消失了。但显然这不行。

原来的:

var udevmonitor = require("child_process").spawn("udevadm", ["monitor", "--udev"]);
udevmonitor.stdout.on("data", function(data) {
  return console.log(data.toString());
});
Run Code Online (Sandbox Code Playgroud)

很简单。所以我认为这是内部使用的管道节点的问题。因此,我想我不会使用管道,而是使用一个简单的直通流。这可以解决问题并给我实时输出。该代码是:

var stdout = new require('stream').PassThrough();
require("child_process").spawn("udevadm", ["monitor", "--udev"], { stdio: ['pipe', stdout, 'pipe'] });

stdout.on("data", function(data) {
  console.log(data.toString());
});
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误: child_process.js:922 throw new TypeError('Stdio 流的值不正确: ' + stdio);

文档说你可以传入一个流。我不明白我做错了什么,单步执行 child_process 源没有帮助。

有人可以帮忙吗?如果您使用的是 Linux,您可以自己运行它。运行代码并插入 USB 驱动器。也许您可以在另一个终端中运行命令“udevadm monitor --udev”来查看会发生什么。移除并重新插入几次,最终节点将打印出来。

linux pipe spawn node.js

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

Ruby符号是否存在,因为字符串是可变的而不是实体的?

我已经在Ruby工作了大约一年了,并且有一个语言问题:因为Ruby字符串是可变的而不是实习,所以它们是必需的符号吗?

在Java中,字符串是不可变的和实体的.所以"foo"在值和引用中总是等于"foo",它的值不能改变.在Ruby中,字符串是可变的而不是实体,因此"a".object_id == "a".object_id将是错误的.

如果Ruby实现了像Java这样的字符串,那么符号就没有必要了,对吧?

ruby

3
推荐指数
2
解决办法
247
查看次数

从ViewController调用UITableViewDelegate方法

我想从我的视图控制器类调用以下方法:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 
Run Code Online (Sandbox Code Playgroud)

但是对于我的生活,我无法弄清楚如何去做.我试过了:

UIView *view = [tableView viewForHeaderInSection:section];
UIView *view = [self viewForHeaderInSection:section];
UIView *view = [self tableView:viewForHeaderInSection:section];
Run Code Online (Sandbox Code Playgroud)

都给我错误.这是tableView:开头的额外一点.任何人都可以给出一些建议或至少解释一下这tableView:(UITableView *)tableView意味着什么?

谢谢!史蒂夫

uitableview ios

2
推荐指数
1
解决办法
3111
查看次数

有没有办法在没有源代码的情况下在模拟器上测试iOS构建?

我们的QA团队希望在旧版iOS上测试我们的应用程序.我们没有旧版本的设备,所以我们想使用xcode的模拟器.我们希望避免让它们连接到源代码控制,获取最新版本和构建版本.相反,我想向他们发送一些文件,他们可以在运行某些iOS版本的模拟器中启动它们.显然,ipa文件不起作用.有人有想法吗?

xcode objective-c ios

2
推荐指数
1
解决办法
3980
查看次数