命名单元测试类和测试方法的最佳实践是什么?
之前在SO上讨论了这个问题,单元测试有哪些流行的命名约定?
我不知道这是一个非常好的方法,但是目前在我的测试项目中,我在每个生产类和测试类之间都有一对一的映射,例如Product和ProductTest.
在我的测试类中,然后我有方法,其中包含我正在测试的方法的名称,下划线,然后是情况和我期望发生的事情,例如Save_ShouldThrowExceptionWithNullName().
带NTFS的Windows如何使用大量文件和目录?
在遇到性能问题或其他问题之前,是否有关于可以放在单个目录中的文件或目录限制的指导?
例如,在其中有一个包含100,000个文件夹的文件夹,这是一件好事吗?
Azure的有Storage accounts和Storage accounts (classic)在Azure的门户网站.
它们之间有什么区别?有没有理由从经典存储帐户迁移到新的存储帐户?
如果下拉列表没有选定值,是否有办法包含默认的空选项(或文本)?
我试图移动一些代码来使用ASP.NET MVC Web API生成的Json数据而不是SOAP Xml.
我遇到了序列化和反序列化类型属性的问题:
IEnumerable<ISomeInterface>.
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子:
public interface ISample{
int SampleId { get; set; }
}
public class Sample : ISample{
public int SampleId { get; set; }
}
public class SampleGroup{
public int GroupId { get; set; }
public IEnumerable<ISample> Samples { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令轻松序列化SampleGroup的实例:
var sz = JsonConvert.SerializeObject( sampleGroupInstance );
Run Code Online (Sandbox Code Playgroud)
但是相应的反序列化失败:
JsonConvert.DeserializeObject<SampleGroup>( sz );
Run Code Online (Sandbox Code Playgroud)
使用此异常消息:
"无法创建JsonSerializationExample.ISample类型的实例.Type是接口或抽象类,无法立即显示."
如果我派生出一个JsonConverter,我可以按如下方式装饰我的属性:
[JsonConverter( typeof (SamplesJsonConverter) )]
public IEnumerable<ISample> Samples { get; set; }
Run Code Online (Sandbox Code Playgroud)
这是JsonConverter:
public class SamplesJsonConverter : …Run Code Online (Sandbox Code Playgroud) 既然Office也是64位安装,在注册表中你会发现安装的Office版本是32位还是64位?
我有一个在.NET 4.0和VS2010中使用C#的.NET项目.
我想做的是为我的库添加一些异步重载,以便使用await关键字为.NET 4.5中的用户更容易地执行异步编程.现在,正在重载的方法是非异步的.此外,我不想自己使用任何异步方法,只需创建新方法并使其可用.
是否可以在.NET 4.0和VS2010中创建异步方法,如果是这样,.NET 4.0异步方法应该是什么样的?
因为我正在使用VS2010,所以我无法访问"async"关键字,因此需要在.NET 4.0中模拟这种行为?例如,它是否需要返回任何特定类型,并且是否需要在方法内部发生任何代码以使其调用的当前非异步代码异步发生?
更新2010年10月19日 我知道我刚才问过这个问题,但这些答案中显示的解决方法难以令人满意,对许多人来说,这仍然是一个常见的问题.WCF只是不灵活.我创建了自己的开源C#库,用于在没有WCF的情况下创建REST服务.检查restcake.net或rest.codeplex.com以获取有关所述库的信息. 结束更新
更新8/2/2012 ASP.NET Web API(以前是WCF Web API,REST WCF的替代品)默认情况下 使用Json.NET END UPDATE
在DataContractJsonSerializer无法处理许多情况下是Json.Net在正确配置(具体周期)处理就好了.
一个服务方法可以返回一个特定的对象类型(在这种情况下是一个DTO),在这种情况下DataContractJsonSerializer将使用它,或者我可以让该方法返回一个字符串,并自己使用Json.Net进行序列化.问题是当我返回一个json字符串而不是一个对象时,发送到客户端的json用引号括起来.
使用DataContractJsonSerializer,返回特定的对象类型,响应是:
{"Message":"Hello World"}
使用Json.Net返回json字符串,响应是:
"{\"Message\":\"Hello World\"}"
我不想在客户端上使用eval()或JSON.parse()结果,如果json以字符串形式返回,用引号括起来就是我必须要做的.我意识到这种行为是正确的; 这不是我想要/需要的.我需要原始的json; 当服务方法的返回类型是对象而不是字符串时的行为.
那么,我如何让我的方法返回一个对象类型,但不能使用DataContractJsonSerializer?我怎么能告诉它使用Json.Net序列化器呢?
或者,有没有直接写入响应流?所以我可以自己退回原始的json?没有包装报价?
这是我的人为例子,供参考:
[DataContract]
public class SimpleMessage
{
[DataMember]
public string Message { get; set; }
}
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class PersonService
{
// uses DataContractJsonSerializer
// returns {"Message":"Hello World"}
[WebGet(UriTemplate = "helloObject")] …Run Code Online (Sandbox Code Playgroud) 我使用Newtonsoft的JSON序列化程序序列化了一个对象,并且DateTime已经通过:
/Date(1237588418563+0000)/
Run Code Online (Sandbox Code Playgroud)
当我使用$ .evalJSON()时,它是一个对象,但是我找不到像toUTCString这样的普通Date方法.
我有什么想法可以做到这一点?
为什么在.NET 4.5 中List<T>实现IReadOnlyList<T>?
List<T> 不是只读的......
json.net ×3
.net ×2
.net-4.5 ×2
c# ×2
json ×2
32bit-64bit ×1
asp.net-mvc ×1
async-await ×1
azure ×1
datetime ×1
filesystems ×1
html-select ×1
ms-office ×1
ntfs ×1
office-2010 ×1
parsing ×1
performance ×1
registry ×1
rest ×1
unit-testing ×1
wcf ×1
windows ×1