小编ewo*_*ack的帖子

C#LINQ TO XML - 从DTD标题中删除"[]"字符

我最近在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是否添加了这些?

有没有办法让程序不添加这些字符?

c# xml linq-to-xml visual-studio-2010

9
推荐指数
2
解决办法
1686
查看次数

传递Mocked HttpPostedFileBase作为MVC 3控制器参数

我有一个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)

我处于被困状态.感谢您提出正确方向的建议或推动.

http mocking asp.net-mvc-3

3
推荐指数
1
解决办法
3600
查看次数

Javascript - 在一行上评估多个正则表达式

我对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或者没有,但从来没有.我不确定我在这里做错了什么.

谢谢!

javascript regex

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

空结合运算符"??" 没有捕获作为外键的数据库空值

我有一个简单的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)

这看起来像我想要的.再次感谢你!

c# null exception-handling operators

0
推荐指数
1
解决办法
208
查看次数