我的JSON(myString)看起来像这样:
"http://d.opencalais.com/dochash-1/0701d73f-2f99-39e1-8c29-e61ee8bf3238/cat/1":
{
"_typeGroup": "topics",
"category": "http://d.opencalais.com/cat/Calais/Law_Crime",
"classifierName": "Calais",
"categoryName": "Law_Crime",
"score": 0.869
}
Run Code Online (Sandbox Code Playgroud)
我试图将上面的确切字符串反序列化为一个对象:
public class OpenCalaisResult
{
public string _typeGroup {get; set; }
public string category { get; set; }
public string categoryName { get; set; }
public string classifierName { get; set; }
public decimal score { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试这段代码:
OpenCalaisResult myObject = (OpenCalaisResult)JsonConvert.DeserializeObject(myString, typeof(OpenCalaisResult), settings);
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
{"将值转换为错误" http://d.opencalais.com/dochash-1/0701d73f-2f99-39e1-8c29-e61ee8bf3238/cat/1 \"键入'MyApp.Parsers.JsonTypes.OpenCalaisResult'.Path' ',第1行,第78位."}
知道我做错了什么吗?
奇怪的是我在谷歌上找不到任何东西.在做常规异常时你会创建一个MyCustomException : Exception,我假设同样适用于ExceptionFaults.
当有人使用无效的api密钥调用我的服务时,我想抛出一个InvalidApiKeyExceptionFault.我似乎无法在网上找到如何设置它并让客户端能够捕获它的示例(可能是某个地方将其包含在WSDL中).
任何建议在哪里看,或者我在尝试一些不可能的事情?
困惑,这是html:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Welcome</title>
<link rel="stylesheet/less" type="text/css" href="/Styles/CompiledLESS.less" />
<script src="/Scripts/JS/less-1.5.0.min.js"></script>
</head>
<body>
<div id="mainContentDiv">
<div>
<h2>Please Log In</h2>
<p>You must <a href="/Account">Log in</a> to use.</p>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
CSS 这是:
body {
background-color: #D5E6ED;
background-image: url("~/Images/Background.jpg");
background-position: center;
background-repeat: no-repeat;
color: #444444;
font-family: Verdana,Tahoma,Arial,"Helvetica Neue",Helvetica,Sans-Serif;
font-size: 71%;
margin: 0;
padding: 0;
}
#mainContentDiv
{
margin: 0 auto;
margin-top:0;
padding: 0;
width: 997px;
background-color:#fff;
}
Run Code Online (Sandbox Code Playgroud)
我看不出有什么不对,但结果是<body>当我用firebug检查时,标签与浏览器窗口的顶部没有齐平.
没有别的CSS,这就是全部.
我的web.config有这个:
<system.web>
<customErrors mode="RemoteOnly" />
<authentication mode="Forms">
<forms loginUrl="~/Account/" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法可以将MVC代码中的loginUrl作为字符串获取?
我有一张桌子:
Id Name
1 Tiggy
1 Boris
1 Halk
1 Gothmog
2 Stamm
2 Wuuf
Run Code Online (Sandbox Code Playgroud)
我想把它放入一个集合中<int id, ienumerable<string name>>.使用linq有一个简单的方法吗?
我想写这个方法:
public static T Nullify<T>(T item, params Func<T, object> [] properties)
{
// Sets any specified properties to null, returns the object.
}
Run Code Online (Sandbox Code Playgroud)
我会这样称呼它:
var kitten = new Kitten() { Name = "Mr Fluffykins", FurColour = "Brown" };
var anonymousKitten = Nullify(kitten, c => c.Name);
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何做到这一点.有任何想法吗?
我有一个方法:
public void ExterminateCuddlyKittens(IQueryable<Kitten> data)
{
data = data.Where(c => !c.Cuddly);
}
Run Code Online (Sandbox Code Playgroud)
它收养了一些小猫,并带走了没有的小猫Cuddly = true。
我用这段代码测试了这个方法:
List<Kitten> myKittens = new List<Kitten>();
myKittens.Add(new Kitten() { Cuddly = true; });
ExterminateCuddlyKittens(myKittens.AsQueryable());
Assert.AreEqual(0, myKittens.Count);
Run Code Online (Sandbox Code Playgroud)
调试我的方法时,智能感知显示它正确地消灭了小猫,并且在方法末尾有一个空集合。
然而,当我们回到测试中时,myKittens 的计数仍然为 1,并且小猫逃脱了灭绝。
我不知道为什么,作为data参考,不是吗?因此,我希望修改集合能够持续下去。但是我不确定是否AsQueryable正在创建副本或其他内容。
有任何想法吗?
我有一个对象,它被传递给一个要改变的方法.这种行为似乎非常罕见,所以我想确保其他开发人员不会绊倒它并且很容易看到.有什么我可以做的,以明确发生了什么?
该方法调整对象的某些属性,但不返回对象.也许应该归还呢?
myObject = Processor(myObject); 会多余,但会更清楚......?
我唯一能想到的就是ref在界面中添加它,但不确定这是不是一个好主意.有任何想法吗?