我试图将我从asmx服务中获取的一些JSON反序列化为对象列表.类中的所有字段都匹配JSON中的字段,JSON回来有效,但我得到了看似神秘的错误:
值不能为空.参数名称:类型.
在我的任何对象中都没有名为type的参数.谁看过这个吗?
这是抛出错误的代码.
System.Web.Script.Serialization.JavaScriptSerializer serr = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Rejection> l = serr.Deserialize<List<Rejection>>(json);
Run Code Online (Sandbox Code Playgroud)
json是一个先前声明的字符串,并返回有效的json,匹配我班级中的字段.您要反序列化的类是否必须与json中的__type属性匹配?
我是我公司唯一的开发人员,并且作为一个自学者来自我相处得很好,但我知道我错过了从更多高级开发人员那里获得的代码审查所带来的教育.
有谁知道提供志愿导师的任何网站/资源?我正在寻找一些人不时检查我的代码,并给我一些指示.
也许是慈善的SO用户?
[.NET,C#,ASP.NET]
我有一些JavaScript需要将xslt应用于ajax请求的结果.xslt在一个单独的文件"transform.xslt"中定义 - 什么是在我的页面中包含xslt的最佳方式?
是否可以使用某种<link...元素,或者我是否需要为xslt单独生成一个http请求?
我有一个实用程序,它通过一个目录中的一组文件进程 - 进程相对较慢(并且有很多文件)所以我试图通过只有进程的文件来优化进程修改"晚于上一个处理日期.
通常这很好用但是我发现复制文件不会改变上次修改日期,因此有各种方案涉及复制文件,其中进程跳过某些已更改的文件,例如:
由于给定文件的修改日期是9:30,并且目录最后在10:00处理,因此不应该跳过该文件.
不幸的是,在某些情况下(例如在具有源控制等的协作环境中),上述情况往往发生得太频繁.显然我的逻辑是有缺陷的 - 我真正需要的是"最后修改或复制"的日期.这样的事情存在吗?
如果失败了,是否有另一种方法可以在给定文件发生变化的情况下以合理的可靠性快速确定?
ASP.Net允许您将新程序集复制到bin应用程序的目录中,而无需重新启动任何服务或进程.
我有一个加载用户定义的插件和扩展的应用程序(其中一些是基于COM的) - 我想提供类似的功能(即无需重新启动过程就能更改/更新程序集).目前,程序集已锁定,直到进程停止.
ASP.Net如何管理这个?
我试图通过设置CacheDuration属性的WebMethod属性让ASP.Net缓存Web服务请求的响应:
[WebMethod(CacheDuration = 60)]
[ScriptMethod(UseHttpGet = true)]
public static List<string> GetNames()
{
return InnerGetNames();
}
Run Code Online (Sandbox Code Playgroud)
以上是ASP.Net页面上的一个方法(我也尝试将它移动到自己的类,但它似乎没有任何区别) - 我设置UseHttpGet为true因为POST请求没有缓存,但是尽管我付出了最大的努力,它似乎仍然没有任何区别(方法开始处的断点总是被击中).
这是我用来调用方法的代码:
%.ajax({
url: "MyPage.aspx/GetNames",
contentType: "application/json; charset=utf-8",
success: function() {
alert("success");
}
Run Code Online (Sandbox Code Playgroud)
有什么我错过了可能阻止ASP.Net缓存此方法的东西吗?
如果不这样做,我是否可以使用任何诊断机制来更清楚地了解ASP.Net缓存的情况?
是否可以让C#DLL打开一个消息框?就像在WinForm中一样:
MessageBox.Show("Message");
Run Code Online (Sandbox Code Playgroud)
我认为DLL不能直接执行,但是如果它被注入到要运行的进程中,那么它可以显示消息框(如果可能的话).
我正在尝试从命令promopt运行示例Java应用程序,但是我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/badlogic/gdx/helloworld/HelloWorldDesktop
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.helloworld.HelloWorldDesktop
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.badlogic.gdx.helloworld.HelloWorldDesktop. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我用来尝试运行这个应用程序的命令是:
java -cp .;gdx.jar;gdx-backend-jogl.jar com.badlogic.gdx.helloworld.HelloWorldDesktop
Run Code Online (Sandbox Code Playgroud)
所有相关文件都在当前工作目录中(.java,.class和.jar文件)
我用来构建.class文件的命令如下(有2个.java文件):
javac -cp gdx.jar;gdx-backend-jogl.jar HelloWorld.java HelloWorldDesktop.java
Run Code Online (Sandbox Code Playgroud)
同样,这是从同一个工作目录运行的 - 内容HelloWorldDesktop.java是(或多或少):
package com.badlogic.gdx.helloworld;
public class HelloWorldDesktop {
public static void main (String[] argv) {
// Application
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试学习Java作为C#开发人员,所以我有很强的编程概念背景,整个java工具链目前让我很困惑.异常表明HelloWorldDesktop找不到类,但据我所知,我已经得到了正确的名称,并且我已经将正确的.jar文件添加到类路径中,因此Java应该能够加载这个类.
为什么找不到它HelloWorldDesktop?
当C#6到达时,我刚刚引用了Microsoft.Net.Compilers NuGet包,并且TFS版本的C#6功能立即开始工作,而无需在构建机器上安装其他依赖项.
现在C#7在这里是否有一个等效的NuGet包可以做同样的事情?(或者这不是推荐采用C#7的方式吗?)
Microsoft.Net.Compilers包的描述确实说它"导致使用包中包含的特定版本的C#[...]编译器构建项目",但是我找不到相应的C#编译器版本适用于给定的NuGet包.我已经尝试添加最新的稳定版本(1.3.2),但是C#7的功能没有编译(而且这个软件包大概还要6个月左右,所以我真的没想到它会工作)
asp.net ×4
c# ×3
.net ×2
ajax ×1
asp.net-ajax ×1
assemblies ×1
c#-7.0 ×1
caching ×1
classpath ×1
dll ×1
html ×1
java ×1
javascript ×1
jquery ×1
junit ×1
messagebox ×1
unit-testing ×1
xslt ×1