继续对WCF服务使用依赖注入,是否有任何方法可以将DI用于WCF 验证器,以便可以执行此操作:
public class DIValidator : UserNamePasswordValidator
{
private readonly IService service;
[Inject]
public DIValidator(IService service)
{
this.service = service;
}
public override void Validate(string userName, string password)
{
service.Login(userName, password);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 - 我试图将Dzmitry的建议应用于我的自定义行为扩展,因为我的验证器是在app.config中定义的.遗憾的是我得到一个MethodMissingException,因为wcf希望我的验证器有一个默认的构造函数:
System.MissingMethodException: No default constructor has been defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
这是我的行为类:
public class DependencyInjectionServiceBehavior : BehaviorExtensionElement, IServiceBehavior
{
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
serviceHostBase.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = DISupport.Kernel.Get<IService>(); …Run Code Online (Sandbox Code Playgroud) 我有一个名为x的数组,其大小为6*sizeof(float).我知道声明:
float x[6];
Run Code Online (Sandbox Code Playgroud)
会在堆栈内存中为x分配6*sizeof(float).但是,如果我执行以下操作:
float *x; // in class definition
x = new float[6]; // in class constructor
delete [] x; // in class destructor
Run Code Online (Sandbox Code Playgroud)
我将为x分配6*sizeof(float)的动态内存.如果x的大小在类的生命周期中没有变化,就清洁度和速度的最佳实践而言(我隐约记得,如果不正确的话,堆栈内存操作比动态内存操作更快),我应该确定x是静态而不是动态分配的内存?提前致谢.
我有一个应用程序将二进制文件转换为ASCII文件.使用分析器我发现我花了25%的时间做了从BinaryWriter.Write(wchar [])调用的Encoding.GetBytes().这是完全正确的,因为我有许多类似于这个的结构:
m_writer.Write("some fancy long text".ToCharArray());
Run Code Online (Sandbox Code Playgroud)
你有任何聪明的想法如何避免这种编码转换?
我现在有一个想法是做类似的事情:
const byte[] SOME_FANCY_LONG_TEXT = Encoding.ASCII.GetBytes("some fancy ...");
// ... and later
m_writer.Write(SOME_FANCY_LONG_TEXT);
Run Code Online (Sandbox Code Playgroud)
但我必须手动执行许多此类条目.
我们正在创建一些最初由.NET客户端使用的WCF服务,但将来将被Java客户端使用.
因此,我们希望避免在Java不支持的接口中使用任何数据类型.
我们所知道的具体是可以为空的值类型.
一个建议是我们可以通过使用字符串来表示,例如,可以为空的int来支持这些.因此空字符串表示null,否则要求字符串必须可解析为int.
任何人都可以推荐一个更好的选择,或者你会这样做?
使用VIM,可以很容易地显示任何给定文件的行号:
:set number
Run Code Online (Sandbox Code Playgroud)
但是,行编号为1索引,这意味着编号从1开始.通常这正是我想要的,但是我用来编译代码的特定工具报告零索引行号 - 即行号从零开始.
如何更改vim的行编号以进行补偿,以便查看vim缓冲区中的数字对应于工具提供的错误,此外,跳转到特定数字也与工具的数字相对应.
也就是说,如果该工具告诉我第98行有错误,我想通过键入"98G"而不是"97G"来跳转到那一行,我希望该行(在vim中真的是第97行)在行号列表中显示"98".
虽然我可以过滤工具的输出,但相当简单,这不是一项简单的任务,因为该工具还输出对应于每一行的十六进制值,它具有相同的零索引形式,并且在信息性消息中输出好吧,不只是因为错误,我有很多这样的项目.
是否有任何类型的API可以让我在Firefox中操作文件下载对话框?(我想访问用户做某事时出现的那个,而不是自己发起一个).
我想要做的是从Selenium访问这个对话框(以及Selenium"特权模式"是否足以访问chrome接口是我不确定的事情).
我目前在MySQL上使用这种类型的SQL在一个查询中插入多行值:
INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),...
Run Code Online (Sandbox Code Playgroud)
在PDO上的读数中,使用预处理语句应该比静态查询具有更好的安全性.
因此,我想知道是否可以使用预准备语句生成"通过使用一个查询插入多行值".
如果是,我可以知道如何实施它?
我在一个recipes已插入的表中有一个字段mysql_real_escape_string,我想计算该字段中的换行符数,并使用此数字对记录进行排序.
ps该领域被称为成分.
感谢大家
我经常忘记使用"time"命令显式地为执行添加前缀,理想情况下,我会在下一个shell提示符中看到最后一个命令花了多少实时时间(在每个命令上).
我已经浏览了bash文档,但找不到任何相关内容.
我的团队目前正在使用buildbot来实现隔夜和持续集成构建和回归测试的自动化.对于构建和单元测试,构建器只调用一个脚本,该脚本从p4同步源然后运行xcodebuild.回归测试也由shell脚本启动,它们本身就是shell脚本和AppleScripts的组合.构建都在一个系统上执行,但随后buildbot触发测试在多台Mac上进行,具有不同的架构和操作系统组合.我喜欢buildbot的东西是自动触发器(因此只有在构建成功时才运行测试),并且报告包括瀑布视图以查看整体状态.
但是,我也看到了一些问题.协调构建的"主"进程要么是漏洞,要么只是有一个巨大的工作集,这意味着它消耗了几千兆字节的内存.偶尔网络问题意味着奴隶会丢失; 而不是稍后重试它将只是失败的构建.实际上,如果应该为依赖构建触发从属设备,则在第一次构建成功完成之后它将失败.
那么你们其他人用什么来自动化你的Xcode构建和单元测试呢?这些解决方案如何为您服务?你会推荐什么?