我最近在VS2010中创建了一个小型的C#windows窗体/ LINQ to XML应用程序,完全按照它应该做的,除了一件事:它在DOCTYPE标记的末尾添加"[]",这显然导致文件遗留系统拒绝.这是一个前后:
之前
<!DOCTYPE ichicsr SYSTEM "http://www.accessdata.fda.gov/xml/icsr-xml-v2.1.dtd">
Run Code Online (Sandbox Code Playgroud)
后
<!DOCTYPE ichicsr SYSTEM "http://www.accessdata.fda.gov/xml/icsr-xml-v2.1.dtd"[]>
Run Code Online (Sandbox Code Playgroud)
使用.Save函数将文件保存在程序中后,将添加这些字符.该程序允许选择.xml文件,然后通过删除某些标签"清除"它,然后保存它.进程开始时,文件在DOCTYPE中没有"[]".保存后,他们会这样做.LINQ to XML是否添加了这些?
有没有办法让程序不添加这些字符?
我有一个Mock挑战 - 我正在使用MVC 3和nunit框架并试图模拟一个控制器有一个HttpPostedFileBase作为参数.控制器签名如下所示:
public ActionResult UploadAttachment(AttachmentViewModel clientAttachment, HttpPostedFileBase file, string clientName)
Run Code Online (Sandbox Code Playgroud)
我为我的"文件"参数设置了一个模拟参考,但它抱怨它不会采用模拟对象.我猜我需要为这个场景设置一个ControllerContext,但我也没有任何运气.对于第一个测试,我只需要HttpPostedFileBase返回一个空文件(在空白文件引用进入的情况下).我还阅读了Scott Hanselman关于这个主题的优秀文章(计算机Zen).对于我关注的MVC部分中的关键句似乎是"当你创建自己的ControllerContext时,你将在Web服务器外部运行时(例如在测试中)获得动态生成的HttpRequestBase的Mock." 这似乎是我遇到墙壁的地方.
我知道我需要这些元素:
controller.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), controller);
mockContext.SetupGet(c => c.Request).Returns(mockRequest.Object);
mockRequest.Setup(c => c.HttpMethod).Returns([not sure what to evoke here]);
Run Code Online (Sandbox Code Playgroud)
我处于被困状态.感谢您提出正确方向的建议或推动.
我对Javascript中的正则表达式相当新,我正在尝试并且没有做一些看似简单的事情.基本上,我需要评估字符串是否满足2个正则表达式条件中的1个.基本上,输入字符串可以有2种形式中的1种,其中任何一种都是有效的,其他任何形式都是无效的.
所以说我有2个正则表达式:a= ^[0-9]\d{3}$并且b= ^1-\d{5}想要在继续之前查看输入字符串是否匹配.我想做的是这样的:
If((!a.test(input)) || (!b.test(input)))
{
alert("Invalid ID");
}
Run Code Online (Sandbox Code Playgroud)
我也试过使用"|"的变体 运营商:
if((!a|!b.test(input)))
Run Code Online (Sandbox Code Playgroud)
但到目前为止还没有任何效果.通常我会得到声明来验证1或者没有,但从来没有.我不确定我在这里做错了什么.
谢谢!
我有一个简单的C#语句:
var code = container.thing.result.decode ?? "Unknown";
Run Code Online (Sandbox Code Playgroud)
抛出"对象引用未设置为对象的实例".数据库值为null时的异常.它与非空值完美配合(到目前为止).我试着更明确地用三元运算符重写该行:
var outcome = container.thing.result.decode == null ? "Unknown" : container.thing.result.decode;
Run Code Online (Sandbox Code Playgroud)
并且我得到了相同的异常相同的结果(并且ReSharper引导我回到更简单的语句).
我也读过那个?? 运算符仅适用于可空类型.我正在使用的字段不是可空类型,它是nvarchar(100),也是查找表的外键.如上所述,该语句使用有效的非null值.
应用程序的ORM也有一个CODE值,用于生成CODE和DECODE对,它看起来像应该映射到查找表.
但我无法弄清楚如何处理空值.
谢谢!
编辑:谢谢你的快速回复!我确实发现了在发布后几分钟我感到困惑的地方.我认为写出问题有助于我描述问题.我更改了语句以检查引用查找表的实际字段是否为null:
var outcome = container.thing.database_code_field == null ? "Unknown" : container.thing.result.Decode;
Run Code Online (Sandbox Code Playgroud)
这看起来像我想要的.再次感谢你!