我见过application/csv
二手也是text/csv
.
有什么不同?有区别吗?只要请求匹配可用的内容,这是否重要?它们可以互换吗?
我在接口上有一个方法:
string DoSomething(string whatever);
Run Code Online (Sandbox Code Playgroud)
我想用MOQ模拟这个,以便它返回传入的内容 - 类似于:
_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) )
.Returns( [the parameter that was passed] ) ;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我想知道做一个项目的分叉和做一个项目之间的区别clone
.
如果我分叉项目,我是否只能通过GitHub发送拉取请求?
我尝试在命名*中语法正确.我总是用filename
而不是fileName
.java约定似乎也使用它,但FxCop更喜欢fileName
.
有关WikiPedia的讨论.我读的越多,我就越觉得我是对的(这很常见!:)).有没有人有明确的答案或者这仅仅是主观的?
*我希望这篇文章中没有语法错误!
我最近与同事讨论了Dispose
实施的价值和类型IDisposable
.
我认为即使没有非托管资源可以清理IDisposable
,也应该尽快清理类型.
我的同事有不同的想法; 执行IDisposable
,如果你没有任何非托管资源为你的类型,最终会被垃圾收集是没有必要的.
我的论点是,如果你有一个想要尽快关闭的ADO.NET连接,那么实现IDisposable
并且using new MyThingWithAConnection()
有意义.我的同事回答说,在封面下,ADO.NET连接是一种非托管资源.我对他回复的答复是,最终所有东西都是一种非托管资源.
我知道推荐的一次性模式,如果Dispose
被调用,你可以免费使用托管和非托管资源,但是如果通过终结器/析构函数调用,则只有免费的非托管资源(前面有关于如何提醒消费者不正确使用您的IDisposable类型的博客)
所以,我的问题是,如果你有一个不包含非托管资源的类型,是否值得实现IDisposable
?
鉴于:
static TDest Gimme<TSource,TDest>(TSource source)
{
return default(TDest);
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样做:
string dest = Gimme(5);
Run Code Online (Sandbox Code Playgroud)
没有得到编译器错误:
error CS0411: The type arguments for method 'Whatever.Gimme<TSource,TDest>(TSource)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
该5
可以推断为int
,但有编译器将不会/无法解决的返回类型的限制string
.我在几个地方读到这是设计但没有真正的解释.我在某处读过这可能会在C#4中发生变化,但事实并非如此.
任何人都知道为什么不能从泛型方法中推断出返回类型?这是其中一个问题,答案是如此明显,它正盯着你的脸?我希望不是!
有没有一个工具可以分析.NET代码并找到竞争条件?
我有一些代码,它有一个公共静态属性,可以获取或创建一个私有静态字段.它还有一个公共静态方法,将此字段设置为null(...是的,我知道!..)
由于这些方法中没有任何一种方法可以锁定,因此可以肯定的是,未来的事情将会出现严重错误.我需要一个工具,它递归地遍历调用这些方法之一的东西,看看是否有任何东西在另一个线程上产生.
我正在寻找一个工具或者一个nDepend SQL脚本(如果可能的话).
我喜欢这个DebuggerDisplay
属性.我非常喜欢它,我想在我没有源代码的类型上使用它.
这可能吗?
偶尔,我看到typeof(Foo)
返回null.为什么会这样?
这是在C#,.NET 3.5中.
我认为它可能与包含尚未加载的类型的程序集有关,但测试应用程序显示程序集在使用的方法的开头加载typeof
.
有任何想法吗?
更新1
更新2
有问题的应用程序使用huuuuuge内存量并在32位XP上运行.我想也许它是一个TypeLoadException或OutOfMemoryException,它以某种方式被吞下(但我看不出如何,因为我已经尝试过在调试器中启用了第一次机会异常).
更新3
刚才遇到同样的问题.这是堆栈跟踪:
到目前为止的代码实际上只是:
Type tradeType = typeof(MyTradeType)
TradeFactory.CreateTrade(tradeType)
Run Code Online (Sandbox Code Playgroud)
(之前,它是..CreateTrade(typeof(MyTradeType))
如此我实际上无法判断typeof
返回的null是否存在)
因此,看起来typeof()
它不会返回null但是它在CreateTrade
方法结束时被设置为null.
exception(NullReferenceException
)的HResult
属性为0x80004003
(Invalid pointer
).对System.Runtime.InteropServices.Marshal.GetLastWin32Error( )
(在立即窗口中)的调用返回127 (The specified procedure could not be found)
.我查看了模块窗口,并且已经加载了包含此类型和方法的模块,并且看起来没有任何加载器错误.
我正在尝试使用PetaPoco将表转换为POCO.
在我的表中,我有一个名为的列TheEnum
.此列中的值是表示以下枚举的字符串:
public enum MyEnum
{
Fred,
Wilma
}
Run Code Online (Sandbox Code Playgroud)
当PetaPoco尝试将字符串"Fred"转换为MyEnum
值时会发出ch咽声.
它在GetConverter
方法中执行此操作,在行中:
Convert.ChangeType( src, dstType, null );
Run Code Online (Sandbox Code Playgroud)
这里src
是"弗雷德"(a string
),而且dstType
是typeof(MyEnum)
.
一个例外是InvalidCastException
,说Invalid cast from 'System.String' to 'MyEnum'
我错过了什么吗?我需要先注册一些东西吗?
通过在GetConverter
方法中添加以下内容,我解决了这个问题:
if (dstType.IsEnum && srcType == typeof(string))
{
converter = delegate( object src )
{
return Enum.Parse( dstType, (string)src ) ;
} ;
}
Run Code Online (Sandbox Code Playgroud)
显然,我不想在每一行都运行这个委托,因为它会大大减慢速度.我可以将这个枚举及其值注册到字典中以加快速度,但在我看来,这样的东西可能已经存在于产品中.
所以,我的问题是,我是否需要做一些特殊的事情来注册PetaPoco的枚举?
2012年2月23日更新
.net ×5
c# ×5
csv ×1
debugging ×1
finalization ×1
finalizer ×1
fxcop ×1
git ×1
github ×1
http-headers ×1
idisposable ×1
mime-types ×1
mocking ×1
moq ×1
naming ×1
ndepend ×1
orm ×1
petapoco ×1