检查对象是否具有codecontracts属性

时间:2015-05-07 13:17:53

标签: c# code-contracts

我在工厂类中有方法

    internal Window GetWindow(int siteId)
    {
        Contract.Requires(siteId > 0);

        Window result;

        //some logic that create specific window

        return result;
    }

假设我有[MyAttribute]

我需要GetWindow中的后置条件,这可以证明该方法返回标有[MyAttribute]的对象

有可能吗?

1 个答案:

答案 0 :(得分:0)

我认为有可能通过反思。

我假设您要测试的方法属于同一类。

   Type returnedType = this.GetType().GetMethod("The method you want to test").ReturnType;
   Contract.Requires(returnedType.GetCustomAttributes(typeof(MyAttribute), true).Length > 0);