小编sta*_*chu的帖子

Mono.Cecil type.IsAssignableFrom(derivedType)等价物

我正在使用Mono.Cecil在Assembly中查找派生类型的类型.Normaly可以使用IsAssignableFrom()方法完成,但我不能在Cecil中使用它.有没有这样的方法或其他方法来检查它?谢谢迈克

c# reflection inheritance cil mono.cecil

10
推荐指数
1
解决办法
1792
查看次数

检测C#库中主线程的运行情况

我正在创建一个C#dll,它将被WinForms中的其他开发人员使用.出于某些原因,我想检测,如果来自此库的方法是从Main(GUI)线程调用的,并警告开发人员他已经完成了这样的事情(即在日志文件中).有没有合理的方法从主线程中检测调用方法?请记住,我无权访问WinForm应用程序.

.net c# multithreading winforms

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

Contract.Invariant不通过静态验证程序检查

我正在尝试Code Contract,我遇到了一个问题.我有课:

public class SpecialPoint
{
    public int X { get; set; }
    public int Y { get; set; }

    public SpecialPoint(int x, int y)
    {
        Contract.Requires<ArgumentException>(y > x);
        X = x;
        Y = y;
    }


    [ContractInvariantMethod]
    private void ClassContract()
    {
        Contract.Invariant(Y > X);
    }
}
Run Code Online (Sandbox Code Playgroud)

我对它进行了一次测试:

[TestFixture]
class SpecialPointTests
{
    [Test]
    public void SpecialPoint()
    {
        var p = new SpecialPoint(10, 20); 
        p.X = 30;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望静态检查器警告我有关赋值pX = 30; 因为这违反了不变量,但它只发生在运行时.我有静态分析启用.我的版本是1.7.11202.10.

.net code-contracts

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