小编All*_*est的帖子

如何检查对象是否是某种类型的数组?

这很好用:

var expectedType = typeof(string);
object value = "...";
if (value.GetType().IsAssignableFrom(expectedType))
{
     ...
}
Run Code Online (Sandbox Code Playgroud)

但我怎么检查是否值是不设置一个字符串数组expectedTypetypeof(string[])?我想做的事情如下:

var expectedType = typeof(string);
object value = new[] {"...", "---"};
if (value.GetType().IsArrayOf(expectedType)) // <---
{
     ...
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?

.net c# arrays reflection types

61
推荐指数
4
解决办法
8万
查看次数

什么附加到nunit扩展/ rowtest?

在NUnit 2.4.7中,包含了nunit.framework.extensions.dll,这使得可以进行RowTests.

下载最新版本(2.5.8)时,我找不到它.这是怎么回事?

nunit nunit-2.5 rowtest

20
推荐指数
2
解决办法
3007
查看次数

获取没有任何泛型信息的类型名称

如果我写:

var type = typeof(List<string>);
Console.WriteLine(type.Name);
Run Code Online (Sandbox Code Playgroud)

它会写:

List`1

我想要它只写:

名单

我怎样才能做到这一点?有没有更聪明的方法来做到这一点,而不必使用Substring或类似的字符串操作功能?

.net c# generics reflection

20
推荐指数
1
解决办法
5294
查看次数

了解NHibernate + Linq + Future

我想在编写Linq查询时使用NHibernate进行分页.做这样的事情很容易:

return session.Query<Payment>()
    .OrderByDescending(payment => payment.Created)
    .Skip((page - 1)*pageSize)
    .Take(pageSize)
    .ToArray();
Run Code Online (Sandbox Code Playgroud)

但有了这个,我没有得到任何关于项目总数的信息.如果我只是做一个简单的.Count(),那将生成一个对数据库的新调用.

我发现这个答案通过使用未来来解决它.但它使用Criteria.我怎么能用Linq做到这一点?

linq nhibernate linq-to-nhibernate

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

NoWarn不在DNX中工作

在我的测试项目中,我有一些未在代码中分配的私有字段,但是被分配了反射.

编译时,我收到如下警告:

警告CS0649字段'CLASSNAME.FIELDNAME'永远不会被赋值,并且将始终具有其默认值null

我已经尝试添加<NoWarn>649</NoWarn>到xproj中的第一个PropertyGroup.但我仍然得到错误.

NoWarn在DNX中不起作用吗?或者我做错了什么?这个问题还有其他解决办法吗?

c# compiler-warnings dnx

16
推荐指数
1
解决办法
356
查看次数

使用rhino mocks为每个调用返回不同的实例

我有这个代码:

Expect.Call(factory.CreateOrder())
    .Return(new Order())
    .Repeat.Times(4);
Run Code Online (Sandbox Code Playgroud)

每次调用此函数时,每次返回相同的实例.我希望返回差异实例.我希望能够做到这样的事情:

Expect.Call(factory.CreateOrder())
    .Return(() => new Order())
    .Repeat.Times(4);
Run Code Online (Sandbox Code Playgroud)

这可以用某种方式完成吗?

.net c# unit-testing rhino-mocks mocking

12
推荐指数
1
解决办法
2626
查看次数

在使用支持集合实现ICollection时,代码会收集警告

我有这个代码:

public class MyCollection : ICollection<string>
{
    private readonly ICollection<string> _inner = new Collection<string>();

    public void Add(string item)
    {
        _inner.Add(item);
    } // <-- CodeContracts: ensures unproven: this.Count >= Contract.OldValue(this.Count)

    public void Clear()
    {
        _inner.Clear();
    } // <-- CodeContracts: ensures unproven: this.Count == 0

    public bool Contains(string item)
    {
        return _inner.Contains(item); // <-- CodeContracts: ensures unproven: !Contract.Result<bool>() || this.Count > 0
    }

    public void CopyTo(string[] array, int arrayIndex)
    {
        _inner.CopyTo(array, arrayIndex); // <-- CodeContracts: requires unproven: arrayIndex + this.Count  <= array.Length …
Run Code Online (Sandbox Code Playgroud)

.net c# icollection code-contracts

6
推荐指数
1
解决办法
928
查看次数

反序列化xml时忽略未知类型

我有这个代码:

[XmlType( "Metadata" )]
[Serializable]
public class MetadataContainer : List<MetadataBase>
{
}

[XmlType( "Meta" )]
[XmlInclude( typeof( ReadonlyMetadata ) )]
[Serializable]
public abstract class MetadataBase
{
}

[XmlType( "Readonly" )]
[Serializable]
public class ReadonlyMetadata : MetadataBase
{
}

[TestFixture]
public class SerializationTests
{
    [Test]
    public void Can_deserialize_with_known_type()
    {
        const string text = @"<Metadata xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
                        <Meta xsi:type=""Readonly"" />
                    </Metadata>";

        var serializer = new XmlSerializer( typeof( MetadataContainer ) );
        var metas = (MetadataContainer)serializer.Deserialize( XmlReader.Create( new StringReader( text ) ) );

        Assert.That( …
Run Code Online (Sandbox Code Playgroud)

.net c# xml-deserialization

6
推荐指数
1
解决办法
4628
查看次数

使用SmtpClient发送邮件的最佳方式?

在发送大量电子邮件时,我正在寻找良好的性能.

我听说正确的方法是打开一个连接发送~20封电子邮件并关闭连接.并一遍又一遍地这样做.它是否正确?

SmtpClient是如何工作的,是否为自己的生命周期打开了连接?(不是IDisposable,所以看起来不像那样)或者是否为每个发送的电子邮件打开连接?或者它是否一直打开连接?或者它是否有一些魔力可以在适当时打开和关闭连接?

我想知道所以我知道如何启动SmtpClient.作为单身人士或仅作为一大块信息......

.net email performance smtp smtpclient

5
推荐指数
1
解决办法
3212
查看次数

如何在SQL Server中更改锁定策略?

我读过这样的文章:http : //www.codinghorror.com/blog/archives/001166.html http://www.databasejournal.com/features/mssql/article.php/3566746/Controlling-Transactions-and -locks-部分-5-SQL-2005-Snapshots.htm

根据我的理解,SQL Server有一个非常悲观的锁定策略.为了提高性能,我应该更改锁定Read Committed Snapshot.

但我找不到在哪里这样做.我在哪里更改锁定策略?

sql-server performance deadlock locking

5
推荐指数
1
解决办法
8356
查看次数