使用c#4.0 - 构建一个接口和一个实现接口的类.我想在界面中声明一个可选参数,并让它反映在类中.所以,我有以下内容:
public interface IFoo
{
void Bar(int i, int j=0);
}
public class Foo
{
void Bar(int i, int j=0) { // do stuff }
}
Run Code Online (Sandbox Code Playgroud)
编译,但看起来不正确.接口需要具有可选参数,否则它在接口方法签名中无法正确反映.
我应该跳过可选参数并使用可空类型吗?或者这是否按预期工作,没有副作用或后果?
我有以下代码
[DataContract]
public enum StatusType
{
[EnumMember(Value = "A")]
All,
[EnumMember(Value = "I")]
InProcess,
[EnumMember(Value = "C")]
Complete,
}
Run Code Online (Sandbox Code Playgroud)
我想做以下事情:
var s = "C";
StatusType status = SerializerHelper.ToEnum<StatusType>(s); //status is now StatusType.Complete
string newString = SerializerHelper.ToEnumString<StatusType>(status); //newString is now "C"
Run Code Online (Sandbox Code Playgroud)
我已经使用DataContractSerializer完成了第二部分(参见下面的代码),但它似乎做了很多工作.
我错过了一些明显的东西吗 想法?谢谢.
public static string ToEnumString<T>(T type)
{
string s;
using (var ms = new MemoryStream())
{
var ser = new DataContractSerializer(typeof(T));
ser.WriteObject(ms, type);
ms.Position = 0;
var sr = new StreamReader(ms);
s = sr.ReadToEnd();
}
using (var xml …
Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2010中,我可以按全名列出我的测试.这样,我的测试将按对象排序,然后是方法,然后是我构建测试时的单个测试用例,如下所示:
http://haacked.com/archive/2012/01/02/structuring-unit-tests.aspx
但是,在Visual Studio 2012 Ultimate RC Test Explorer中,它按测试名称列出测试(而不是"WidgetMaker.ctor.HappyPath",它只显示"HappyPath").有没有办法更改测试资源管理器以显示全名而不是测试名称?谢谢.
我看到了这个问题,它让我想起了旧DataGrid中的AutoGenerateColumns.我几次使用它们,我最终支持它,因为我需要数据格式化超过标准"吐出数据源列".同样,通过切换,听起来可以节省时间,但最终需要跟踪状态或其他内容,并相应地重写代码.
有没有你最终使用的东西,认为它会节省你的时间,但最终退出,因为它不能满足你的需要?
我正在使用以下说明设置net.tcp WCF服务:http://blogs.msdn.com/swiss_dpe_team/archive/2008/02/08/iis-7-support-for-non-http-protocols.aspx
其中一个步骤是执行以下操作:"如果您打开IIS7管理控制台并查看我们的IIS7HostedService Web应用程序的高级设置,您将看到在启用协议部分中只定义了http.您现在必须添加net.tcp(以逗号分隔),以便我们的服务也能够响应TCP请求."
这很好,但如果我想使用Cassini/VS2010 ASP.NET开发服务器进行调试(点击F5或cntrl-F5)怎么办?我认为没有办法改变IIS中的设置.还是有吗?其他程序员是如此棒,以至于他们不需要通过调试器吗?或者他们使用wsHttpBinding?
基本上,我的一些测试是成功的,有些是失败的.根据Skeet先生的出色建议,我创建了一个完整的代码示例,以确认我并不疯狂.这是代码:
namespace ClassLibrary
{
using System;
public class Manager
{
private int SampleMethod(int id)
{
return id;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试是:
namespace UnitTestProject
{
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class UnitTest
{
[TestMethod]
public void TestPasses()
{
var privateInfo = new PrivateObject(new ClassLibrary.Manager());
var actual = privateInfo.Invoke("SampleMethod", 1);
}
[TestMethod]
public void TestErrorsOut()
{
var privateInfo = new PrivateObject(new ClassLibrary.Manager());
var actual = privateInfo.Invoke("SampleMethod", 0);
}
[TestMethod]
public void TestWorksAsWell()
{
var privateInfo = new PrivateObject(new ClassLibrary.Manager());
privateInfo.Invoke("SampleMethod", new …
Run Code Online (Sandbox Code Playgroud) 我有针对SQL Server 2008的实体框架(.NET 4.0).数据库(理论上)在工作时间内更新 - 删除,然后插入,全部通过事务.实际上,它不会经常发生.但是,我需要确保我始终可以读取数据库中的数据.我正在编写的应用程序永远不会对数据进行任何类型的写入 - 只读.
如果我进行脏读,我总能访问数据; 发生的最糟糕的事情是我得到旧数据(这是可以接受的).但是,我可以告诉Entity Framework始终使用脏读吗?如果我以这种方式设置EF,是否需要担心性能或数据完整性问题?或者我应该退一步看看重写正在执行删除/插入过程的过程?