我在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) 如果我有一个如下所示的实用方法,我该如何进行单元测试呢?好像我想确定输出是否正确我似乎必须将代码构建到测试方法中?我可以看到是否存在条件逻辑,例如输入字符串是否为空返回null,但测试正确的输出似乎很棘手.
public static string EncodeTo64(string input)
{
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes(input);
string returnValue = System.Convert.ToBase64String(b);
return returnValue;
}
Run Code Online (Sandbox Code Playgroud) 目前,我有一个人们可以在某个团队的曲棍球比赛中打开的网站.当曲棍球队得分时,指定人员点击安全位置的按钮.这将使用当前时间戳更新MySQL数据库中的单个条目.
在网站的前端,有一个异步调用,每隔15秒运行一次PHP脚本,以查询数据库中的时间戳.然后脚本将当前时间与拉出的时间戳进行比较,如果它在当前时间戳的15秒内,它会在网页上触发一个事件,包括播放一个空气喇叭的声音并播放团队目标歌曲的短片.
在球队的比赛中,我通常会获得大量的视力,但是很多人抱怨在触发声音的目标得分后(最多)15秒的延迟.我想找到一种方法来解决这个问题.
显然,我不认为对于页面上的每个用户(想想100+)每一秒都会查询数据库.我可能会杀了我的数据库.那么,还有另一种方法可以实现我的结果吗?是否可以将PHP变量放入服务器的内存中,每个会话都可以将其拉出而不会产生使用数据库或文件系统读取的负面后果?
编辑:我的主机没有memcached供我使用,我无法安装它.这令人失望,因为这听起来像是最佳解决方案.有没有人有另一种想法,我可以查看不使用memcached?
多个参数列表,例如def foo(a:Int)(b:Int) = {}每个列表的多个参数,例如def foo(a:Int, b:Int) = {},就我所知,在语义上是等效的,并且大多数函数语言只有一种方式来声明多个参数,例如F#.
我可以找到支持这两种函数定义样式的唯一原因是允许使用只有一个参数的参数列表进行类似语法的语言扩展.
def withBufferedWriter(file: File)(block: BufferedWriter => Unit)
Run Code Online (Sandbox Code Playgroud)
现在可以使用syntax-looking调用
withBufferedWriter(new File("myfile.txt")) { out =>
out write "whatever"
...
}
Run Code Online (Sandbox Code Playgroud)
但是,如果没有多个参数列表,可能还有其他方法可以支持花括号的使用.
一个相关的问题:为什么在Scala中使用多个参数列表称为"currying"?Currying通常被定义为为了支持部分应用而使n-ary函数一元化的技术.但是,在Scala中,可以部分应用函数,而不会使函数的"curried"(多个参数列表,每个参数列表).
我正在使用SQL Server将应用程序从SqlClient迁移到Entity Framework 4.我有一种情况,我必须从一个表复制几行到另一个表,所以我使用INSERT ... SELECT,如下所示:
INSERT INTO dbo.Table1 (Reg1, Reg2, Reg3, Reg4, Reg5, Reg6, Reg7, Reg8)
SELECT Reg1, Reg2, Reg3, Reg4, Reg5, @Reg6, GETDATE(), @Reg8
FROM dbo.Table2
WHERE Reg1 = @Reg1
Run Code Online (Sandbox Code Playgroud)
我可以使用Entity Framework完成与此类似的远程操作,或者我是否必须从Table2获取所有行,并在Table1中逐行插入它们?我怎么能处理GETDATE()?
TKS
我一直试图解决这个问题一周,并得到一个解决方案.我所拥有的是2d空间中的2个点,我需要解决的是一个旋转的是另一个.幸运的是附图将有所帮助,我需要能够计算的是围绕a的b的旋转值.

我发现很多东西指向找到点产品等但我仍然在寻找那个黄金解决方案:o(
谢谢!
这是我从我的应用程序中删除记录的示例方法:
[Authorize(Roles = "news-admin")]
public ActionResult Delete(int id)
{
var ArticleToDelete = (from a in _db.ArticleSet where a.storyId == id select a).FirstOrDefault();
_db.DeleteObject(ArticleToDelete);
_db.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是在索引视图上显示一条消息,上面写着:"Lorem ipsum文章已被删除"我该怎么做?谢谢
这是我当前的Index方法,以防万一:
// INDEX
[HandleError]
public ActionResult Index(string query, int? page)
{
// build the query
var ArticleQuery = from a in _db.ArticleSet select a;
// check if their is a query
if (!string.IsNullOrEmpty(query))
{
ArticleQuery = ArticleQuery.Where(a => a.headline.Contains(query));
//msp 2011-01-13 You need to send the query string to the View …Run Code Online (Sandbox Code Playgroud) 我写了一个大型社交网络iPhone应用程序,我遇到的最大问题之一是NSInteger(和所有其他NS非对象类型)不是一等公民.这个问题源于这样一个事实,显然,他们没有代表零值.
这会产生两个主要问题:
解决此问题的一种方法是始终使用NSNumber,但这会让人非常困惑.在User模型对象中,我将有大约20个不同的NSNumber,并且没有简单的方法来判断每个是否是float,integer,bool等.
所以这是我对潜在解决方案和优点/缺点的看法.我并没有真正卖掉任何一个,所以我想我会要求反馈和/或解决这个问题.
寻找一个有利于这些技术之一的令人信服的论据,或者我没有想到你是否有一个.
UPDATE
我已经开始了,开始了一个开源项目(Apache 2.0),我将在其中提取一些内部类,因为我有时间.它目前包括一些更常见的本机数据类型(BOOL,CGFloat,NSInteger,NSUInteger)的对象包装器.我们选择这样做是因为它将这些数据类型升级为具有严格类型的一等公民.也许你不同意这种方法,但它对我们来说效果很好,所以如果你愿意,可以随意使用它.
我正在添加我们发现的其他类,包括磁盘支持的LRU缓存,"Pair"对象,低内存释放池等.
谁能告诉我在phpDoc语法中定义php命名空间的正确方法是什么?或者,@ package在phpDoc中是否已弃用,因为命名空间或多或少定义了一个包?
如果没有,是否有一种通用的方法来记录文档所在的命名空间?
所以我想使用Ghostscript将以PCL格式创建的文件转换为PostScript.
这是我的问题的主旨.我只是试图在命令行上运行它,但在最后阶段它必须在lp命令上运行,如lp -d <gs
GPL Ghostscript 9.00(2010-09-14)我将在Solaris 10服务器上运行它,但我相信任何Unix系统都应该类似.
bash-3.00# /usr/local/bin/gs -sDEVICE=pswrite -dLanguageLevel=1 -dNOPAUSE -dBATCH -dSAFER -sOutputFile=output.ps cms-form.pcl
GPL Ghostscript 9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in &k2G-210z100u0l6d0e63fa0V
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1910 1 3 %oparray_pop 1909 1 3 %oparray_pop 1893 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- …Run Code Online (Sandbox Code Playgroud) c# ×3
asp.net-mvc ×2
php ×2
cocoa ×1
currying ×1
game-engine ×1
iphone ×1
memory ×1
objective-c ×1
phpdoc ×1
postscript ×1
printing ×1
scala ×1
solaris ×1
solaris-10 ×1
sql-server ×1
types ×1
unit-testing ×1
variables ×1
xna ×1
xna-4.0 ×1