小编Ste*_*unn的帖子

我应该为CSV使用什么MIME类型?

我见过application/csv二手也是text/csv.

有什么不同?有区别吗?只要请求匹配可用的内容,这是否重要?它们可以互换吗?

csv http-headers mime-types

430
推荐指数
5
解决办法
33万
查看次数

返回传递给方法的值

我在接口上有一个方法:

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)

有任何想法吗?

c# moq mocking

352
推荐指数
3
解决办法
11万
查看次数

在GitHub上分叉和克隆有什么区别?

我想知道做一个项目的分叉和做一个项目之间的区别clone.

如果我分叉项目,我是否只能通过GitHub发送拉取请求?

git github

179
推荐指数
6
解决办法
11万
查看次数

参数命名:filename还是fileName?

我尝试在命名*中语法正确.我总是用filename而不是fileName.java约定似乎也使用它,但FxCop更喜欢fileName.

有关WikiPedia讨论.我读的越多,我就越觉得我是对的(这很常见!:)).有没有人有明确的答案或者这仅仅是主观的?

*我希望这篇文章中没有语法错误!

.net naming fxcop naming-conventions

65
推荐指数
5
解决办法
9530
查看次数

"Dispose"只应用于包含非托管资源的类型吗?

我最近与同事讨论了Dispose实施的价值和类型IDisposable.

我认为即使没有非托管资源可以清理IDisposable,应该尽快清理类型.

我的同事有不同的想法; 执行IDisposable,如果你没有任何非托管资源为你的类型,最终会被垃圾收集是没有必要的.

我的论点是,如果你有一个想要尽快关闭的ADO.NET连接,那么实现IDisposable并且using new MyThingWithAConnection()有意义.我的同事回答说,在封面下,ADO.NET连接是一种非托管资源.我对他回复的答复是,最终所有东西都是一种非托管资源.

我知道推荐的一次性模式,如果Dispose被调用,你可以免费使用托管和非托管资源,但是如果通过终结器/析构函数调用,则只有免费的非托管资源(前面有关于如何提醒消费者不正确使用您的IDisposable类型的博客)

所以,我的问题是,如果你有一个不包含非托管资源的类型,是否值得实现IDisposable

c# garbage-collection idisposable finalization finalizer

65
推荐指数
7
解决办法
4185
查看次数

.NET中的通用方法不能推断其返回类型.为什么?

鉴于:

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 c# type-inference

50
推荐指数
4
解决办法
5556
查看次数

C#/ .NET分析工具查找竞争条件/死锁

有没有一个工具可以分析.NET代码并找到竞争条件?

我有一些代码,它有一个公共静态属性,可以获取或创建一个私有静态字段.它还有一个公共静态方法,将此字段设置为null(...是的,我知道!..)

由于这些方法中没有任何一种方法可以锁定,因此可以肯定的是,未来的事情将会出现严重错误.我需要一个工具,它递归地遍历调用这些方法之一的东西,看看是否有任何东西在另一个线程上产生.

我正在寻找一个工具或者一个nDepend SQL脚本(如果可能的话).

.net c# multithreading static-analysis ndepend

40
推荐指数
1
解决办法
2万
查看次数

DebuggerDisplay属性可以应用于一个不拥有的类型吗?

我喜欢这个DebuggerDisplay属性.我非常喜欢它,我想在我没有源代码的类型上使用它.

这可能吗?

.net debugging visual-studio

27
推荐指数
2
解决办法
2369
查看次数

为什么typeof(Foo)会返回null?

偶尔,我看到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).我查看了模块窗口,并且已经加载了包含此类型和方法的模块,并且看起来没有任何加载器错误.


.net c#

23
推荐指数
1
解决办法
1678
查看次数

PetaPoco会处理枚举吗?

我正在尝试使用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),而且dstTypetypeof(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日更新

我刚刚提交了一个补丁,但还没有被提入.如果您想使用它,请查看补丁并合并到您自己的代码中,或者从此处获取代码.

orm petapoco

18
推荐指数
3
解决办法
4640
查看次数