我认为在网上进行简单搜索的结果不止于此.
最接近解决方案的是首先使用属性进行路由的方法:AttributeRouting不使用HttpConfiguration对象来编写集成测试
但是ASP.NET Web Api 2呢?
HttpConfiguration config = new HttpConfiguration();
// config.MapHttpAttributeRoutes(); // This doesn't work. I guess there is needed some more plumbing to know what Controllers to search for attributes, but I'm lost here.
HttpServer server = new HttpServer(config);
using (HttpMessageInvoker client = new HttpMessageInvoker(server))
{
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "http://localhost/api/accounts/10"))
using(HttpResponseMessage response = client.SendAsync(request, CancellationToken.None).Result)
{
response.StatusCode.Should().Be(HttpStatusCode.Created);
}
}
Run Code Online (Sandbox Code Playgroud)
如何注入我的控制器,以便它读取Controller上的属性并设置路由,以便我可以实际进行一些测试?
我正在使用Mongo LINQ驱动程序用于C#,效果很好.
排序很多属性,但这是一个我无法解决的问题,它可能很简单.
var identifierList = new []{"10", "20", "30"};
var newList = list.Where(x => identifierList.Contains(x.Identifier));
This is NOT supported ...
Run Code Online (Sandbox Code Playgroud)
所以我可以这样做:
var newList = list.Where(x => x.Identifier == "10" || x.Identifier == "20" || x.Identifier == "30");
Run Code Online (Sandbox Code Playgroud)
但由于列表是可变的......我该如何构建上述内容?还是有更好的选择吗?
该list类型是IQueryable<MyCustomClass>
有关信息......这用作许多属性的过滤器.在SQL中我可以有一个父 - >子关系.但由于我不能作为主ID的父亲,我需要把所有的ID都拿出去,然后像这样构建它.
希望这是有道理的.如果需要,我会解释更多.
所以我正在玩我的ASP.NET MVC 4解决方案.每件事情都很好,不停地添加东西,但奇怪的事情开始发生.
我的一个Models属性为null,即使我将Json中的项目传递给它.
这是javascript对象/ json传递它:
var obj = {
"plc": "False",
"al": ["386", "710"],
"pl": ["9530", "211", "783"]
};
Run Code Online (Sandbox Code Playgroud)
我正在使用自定义模型绑定器...认为这可能是问题所以我把它关掉了.
尝试使用.NET中的JavaScriptSerializer来查看它是否有效:
var reader = new StreamReader(Request.InputStream);
Request.InputStream.Position = 0;
var readToEnd = reader.ReadToEnd();
var javaScript = new JavaScriptSerializer();
var searchFarmOptions = javaScript.Deserialize<Test>(readToEnd);
Run Code Online (Sandbox Code Playgroud)
得到了所有的属性...... WOOT.
所以我尝试了一个干净的ASP.NET MVC 4解决方案.重现这个bug.
@{
ViewBag.Title = "title";
}
<h1>Title</h1>
Testing ...
<script src="/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
<script>
$(function() {
var obj = {
"1pllort": "False",
"1plc": "true",
"al": ["386", "710"],
"pl": ["9530", "211", "783"]
};
var …Run Code Online (Sandbox Code Playgroud) 我刚刚开始玩TeamCity而且很棒.现在我让它在提交后部署到我的登台服务器,所以我总是知道我在那里运行最新版本.(这个想法来自:http://www.agileatwork.com/automatic-deployment-from-teamcity-using-webdeploy/)
但是,当网站生成一些我不想在每次发布时消除的文件时,我发现了MSDeploy的参数
-enableRule:DoNotDeleteRule
Run Code Online (Sandbox Code Playgroud)
但是如何将其附加到MSBuild命令
MSBuild.exe MvcApplication1.sln
/p:Configuration=Debug
/p:OutputPath=bin
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https://ss-iis:8172/MSDeploy.axd
/p:username=user
/p:password=pass
/p:AllowUntrustedCertificate=True
/p:DeployIisAppPath=foo.bar.tld
/p:MSDeployPublishMethod=WMSVC
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?
或者是否有更奇特的方式从TeamCity进行自动Web部署?
c# ×2
.net ×1
asp.net-mvc ×1
linq ×1
mongodb ×1
msbuild ×1
msdeploy ×1
teamcity ×1
unit-testing ×1