有没有办法用Query String参数填充Dynamic对象?
这样我的QS中的搜索参数可以变化而不会将它们直接绑定到容器对象或者必须更改搜索方法的签名.
例如
入站网址:www.test.com/Home/Search?name = john&product = car&type = open&type = all
public ActionResult Search()
{
dynamic searchParams = // **something magic here**
var model = getResults(searchParams);
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
填充的searchParams对象应如下所示:
{
name = "john",
product = "car",
type = { "open", "all" }
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在我的MVC3应用程序中实现自定义错误,它在web.config中打开:
<customErrors mode="On">
<error statusCode="403" redirect="/Errors/Http403" />
<error statusCode="500" redirect="/Errors/Http500" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
我的控制器非常简单,具有相应的正确命名视图:
public class ErrorsController : Controller
{
public ActionResult Http403()
{
return View("Http403");
}
public ActionResult Http500()
{
return View("Http500");
}
}
Run Code Online (Sandbox Code Playgroud)
为了测试,我在另一个控制器中抛出异常:
public class ThrowingController : Controller
{
public ActionResult NotAuthorised()
{
throw new HttpException(403, "");
}
public ActionResult ServerError()
{
throw new HttpException(500, "");
}
}
Run Code Online (Sandbox Code Playgroud)
403工作 - 我被重定向到我的自定义"/错误/ Http403".
500不起作用 - 我被重定向到共享文件夹中的默认错误页面.
有任何想法吗?
我正在使用 Selenium Web 驱动程序,我想监听浏览器中发生的事件。例如,当页面上的某些 javascript 导致 url 使用以下命令更改时window.location = "...";
我有一个监听器附加到Navigated我的事件上EventFiringWebDriver。但是当浏览器的 url 更改时,此操作将无法触发。我由此推断 Selenium 不能以这种方式监听事件?
是否有正确的方法来附加到浏览器或来自浏览器的 DOM 事件?
我正在 Windows 上调用 .bat 文件。.bat 文件依赖于某些环境变量的存在。
如何在调用 .bat 文件的同时设置这些环境变量,以便环境变量是 .bat 文件的本地变量,并且不会作为全局变量传播。
我理想地想在一行中完成此操作......
我试图在Git中将DiffMerge配置为我的difftool,但没有运气.这是我的.gitconfig文件的一个重要部分(未显示的其他设置仅适用于用户).
[diff]
tool = diffmerge
[difftool "diffmerge"]
cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" \"$LOCAL\" \"$REMOTE\"
Run Code Online (Sandbox Code Playgroud)
每当我git difftool从powershell命令行调用时,冲突都会直接显示在powershell界面的下方,而不是按预期在diffmerge中显示.我知道git会选择设置,因为当我检查全局配置时,我会从配置文件中获取设置:
git config --global --get-all difftool.diffmerge.cmd
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$LOCAL" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)
我正在运行powershell而不是git bash.这是因为我为windows安装了github,它提供了powershell作为git的shell,所以我不需要安装bash(还).Git版本是1.7.11.msysgit.0.
我认为它与使用times论证有关Verify().
open NUnit.Framework
open Moq
type IService = abstract member DoStuff : unit -> unit
[<Test>]
let ``Why does this throw an exception?``() =
let mockService = Mock<IService>()
mockService.Verify(fun s -> s.DoStuff(), Times.Never())
Run Code Online (Sandbox Code Playgroud)
异常消息:
System.ArgumentException:类型'System.Void'的表达式不能用于'Microsoft.FSharp.Core.Unit'类型的构造函数参数
平等比较如何适用于Func?我已将问题的复杂性降低到这些单元测试:
[Test]
public void Will_Pass()
{
Func<string> func = () => "key";
Assert.That(func, Is.EqualTo(func));
}
[Test]
public void Will_Fail()
{
Func<string> funcA = () => "key";
Func<string> funcB = () => "key";
Assert.That(funcA, Is.EqualTo(funcB));
}
Run Code Online (Sandbox Code Playgroud)
我需要测试 - 并成功断言 - a的一个实例Func等于另一个实例.所以我基本上需要一种方法来使失败测试通过.
有没有办法在不创建自定义类型和覆盖的情况下执行此操作Equals()?
我正在尝试使用 Fluent Assertions ShouldBeNull() 扩展方法来断言我的实例确实为 null。
Result.ShouldBeNull();
Run Code Online (Sandbox Code Playgroud)
显然,这会引发异常,因为我无法在空实例上调用扩展。
System.NullReferenceException
Run Code Online (Sandbox Code Playgroud)
如何正确使用 Fluent Assertions 来做出此断言?
有没有办法重写GetTransformedCollection下面的方法,以便它使用Linq语句而不是表达式?我目前正试图绕过"一个带有语句体的lambda表达式无法转换为表达式树"错误.
public class Obj1
{
public int Id { get; set; }
public string[] Names { get; set; }
public string[] Tags { get; set; }
}
public class EntCollections
{
private List<Obj1> _results;
[SetUp]
public void SetUp()
{
_results = new List<Obj1>
{
new Obj1 {Id = 1, Names = new[] {"n1"}, Tags = new[] {"abc", "def"}},
new Obj1 {Id = 2, Names = new[] {"n2", "n3"}, Tags = new[] {"ghi"}},
new Obj1 {Id = 3, Names …Run Code Online (Sandbox Code Playgroud) 使用C#,我可以使用System.Net.Http库直接发布流,如下所示:
private async Task UploadFileAsync(Uri uri, string filename)
{
using (var stream = File.OpenRead(filename))
using (var client = new HttpClient())
{
await client.PostAsync(uri, new StreamContent(stream));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在功能上惯用的方式在F#中做到这一点?
FSharp.Data.Http.Request允许您发布二进制数据,但需要一个字节数组来执行此操作,这意味着将流读取到内存中.我希望避免这种情况,因为我发布了> 20Mb.
例如,AmazonSQSClient在 Web 或其他多线程应用程序中使用 :
在任何时刻应该存在多少个实例?
我应该处理它并创建一个新的吗?
我是否需要防止创建多个实例?
几个提交已被推送到原始分支.这些提交包含导致问题的代码.为了解决问题,我git reset --hard <sha>在问题开始之前做了提交.
我已经修复了问题并在本地提交.现在我想推送到Origin但我不能,因为我的分支是由5个提交(导致问题)和1提交(修复提交)提前.即.分支不同.
我不想合并来自Origin的任何更改.如何将Origin的头部设置为我的本地提交的头部,而不将合并提交到我的本地分支?
谢谢!
c# ×5
f# ×2
git ×2
nunit ×2
.net ×1
amazon-sqs ×1
asp.net-mvc ×1
aws-sdk ×1
batch-file ×1
c#-to-f# ×1
diffmerge ×1
equality ×1
f#-data ×1
func ×1
git-config ×1
lambda ×1
linq ×1
moq ×1
powershell ×1
selenium ×1
tdd ×1
windows ×1