我正在编写一个将采用各种"命令"字符串的应用程序.我一直在看Scala组合器库来标记命令.我发现在很多情况下我想说:"这些令牌是无序的,所以它们可以按任何顺序出现,有些可能不会出现".
根据我目前对语法的了解,我必须定义所有序列组合(伪语法):
command = action~content
action = alphanum
content = (tokenA~tokenB~tokenC | tokenB~tokenC~tokenA | tokenC~tokenB~tokenA ....... )
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,考虑到tokenA-C是唯一的,是否有更短的方法来使用语法定义任何订单的集合?
更新:这个东西已经演变成一个很好的项目,请访问http://valueinjecter.codeplex.com
那么告诉我你怎么看?
我这样做了所以我可以这样做:
Product –> ProductDTO
ProductDTO –> Product
Run Code Online (Sandbox Code Playgroud)
它是如何开始的:
我在我的Inputs/Dto/ViewModels for DropDowns中使用"object"类型,因为我向html发送了一个IEnumerable <SelectListItem>并且我收到了一个选定键的字符串数组
public void Map(object a, object b)
{
var pp = a.GetType().GetProperties();
foreach (var pa in pp)
{
var value = pa.GetValue(a, null);
// property with the same name in b
var pb = b.GetType().GetProperty(pa.Name);
if (pb == null)
{
//no such property in b
continue;
}
if (pa.PropertyType == pb.PropertyType)
{
pb.SetValue(b, value, null);
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
实际用法:
Build方法(Input = Dto):
public …Run Code Online (Sandbox Code Playgroud) 自Vista和Windows 7问世以来,我的一些.NET应用程序开始抛出安全异常.
我注意到一些应用程序(即我的防病毒软件,控制面板)有一个小屏蔽,当我运行这些应用程序时,Windows会自动向我请求管理员权限.
我知道作为用户,我可以将应用程序设置为以管理员身份运行,但这不够好,因为如果应用程序将在没有权限的情况下运行,那么它将在我的用户计算机上崩溃.
有没有办法告诉Windows(以编程方式)我希望应用程序以管理权限运行?
我正在使用Moq和MvcContrib TestHelper类为ASP.NET MVC 1.0中的项目编写单元测试.我遇到了一个问题.
当我来到我的AccountController中的Roles.AddUserToRole时,我得到一个System.NotSupportedException.Roles类是静态的,Moq不能模拟静态类.
我能做什么?
我最近不得不重新映像我的Windows笔记本电脑,emacs现在给我一个奇怪的错误:"启动新的Ispell进程[默认]启用flyspell模式给出了一个错误"我安装了aspell,它可以通过emacs访问.我附上了一张照片来展示这一点.我的emacs配置中也有(setq-default ispell-program-name"aspell").这个相同的配置在我的其他Windows机器上正常工作.这可能是什么问题?图片:emacs-shell中的Aspell http://img145.imageshack.us/img145/4497/emacsaspell.jpg
任何人都可以告诉c ++中动态强制转换的确切含义.我们在哪里可以使用这种动态铸造?这是在采访中向我询问的,我对这个问题一无所知:).
我有一个基于paste.httpserver的Web服务器作为HTTP和WSGI之间的适配器.当我使用httperf进行性能测量时,如果每次使用--num-conn我开始一个新请求,我每秒可以执行超过1,000个请求.如果我改为使用--num-call重用连接,那么我每秒得到大约11个请求,速度的1/100.
如果我尝试ab,我会超时.
我的测试是
% ./httperf --server localhost --port 8080 --num-conn 100
...
Request rate: 1320.4 req/s (0.8 ms/req)
...
Run Code Online (Sandbox Code Playgroud)
和
% ./httperf --server localhost --port 8080 --num-call 100
...
Request rate: 11.2 req/s (89.4 ms/req)
...
Run Code Online (Sandbox Code Playgroud)
这是一个简单的可重现服务器
from paste import httpserver
def echo_app(environ, start_response):
n = 10000
start_response("200 Ok", [("Content-Type", "text/plain"),
("Content-Length", str(n))])
return ["*" * n]
httpserver.serve(echo_app, protocol_version="HTTP/1.1")
Run Code Online (Sandbox Code Playgroud)
它是一个多线程服务器,很难分析.这是一个单线程的变体:
from paste import httpserver
class MyHandler(httpserver.WSGIHandler):
sys_version = None
server_version = "MyServer/0.0"
protocol_version = "HTTP/1.1"
def log_request(self, *args, **kwargs):
pass …Run Code Online (Sandbox Code Playgroud) 我试图在silverlight中使用样式触发器,如下所示:
<Path Canvas.Top="20" Stroke="#FF808080" Data="M 0,20 20,0 40,20 Z" StrokeLineJoin="Round">
<Path.Style>
<Style TargetType="{x:Type Path}">
<Setter Property="Fill" Value="DarkGray"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=userControl, Path=PumpRunning}" Value="True">
<Setter Property="Fill" Value="DarkGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
Run Code Online (Sandbox Code Playgroud)
我想这样做,以便在泵运行或不运行时路径的填充值发生变化.问题是silverlight不支持样式触发器!
那么无论如何围绕这个?有没有办法在代码中执行此操作?我已经调查过了,但我很难过.
谢谢
伊恩
class MyClass
{
};
void foo
{
MyClass arr[10];
}
Run Code Online (Sandbox Code Playgroud)
我想知道函数返回时数组对象的销毁顺序。
我阅读了关于它的更有效的 C++,它说析构函数的调用顺序与构造函数的顺序相反,如下所示:
for(int i = 9 ; i >= 0 ;i--)
{
arr[i].MyClass::~MyClass();
}
Run Code Online (Sandbox Code Playgroud)
有人能告诉我原因吗?
屏幕截图http://img14.imageshack.us/img14/2338/200911231633.png
有没有办法使用Qt 4.5/4.6设置脏点(如屏幕截图所示)?
c++ ×3
asp.net-mvc ×2
.net ×1
automapper ×1
automapping ×1
bnf ×1
c# ×1
coding-style ×1
dynamic-cast ×1
ebnf ×1
emacs ×1
grammar ×1
httperf ×1
httpserver ×1
keep-alive ×1
macos ×1
mapping ×1
moq ×1
paste ×1
python ×1
qt ×1
scala ×1
security ×1
silverlight ×1
static ×1
triggers ×1
uac ×1
unit-testing ×1