Posts Tagged ‘ReSharper’

ReSharper and Microsoft Code Contracts

January 27th, 2010

I’m using code contracts in an MVC RC / .NET 3.5 application and I don’t want ReSharper 5 complaining about potential null reference accesses that aren’t in fact possible due to the contracts.

The solution (pieced together from StackOverflow and JetBrains) is to add the following XML to a file named C:\Program Files\JetBrains\ReSharper\v5.0\Bin\ExternalAnnotations\Microsoft.Contracts\Microsoft.Contracts.xml.

<assembly name="Microsoft.Contracts">
  <member name="M:System.Diagnostics.Contracts.Contract.Requires(System.Boolean)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
    </attribute>
    </parameter>
  </member>
  <member name="M:System.Diagnostics.Contracts.Contract.Requires``1(System.Boolean)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
      </attribute>
    </parameter>
  </member>
  <member name="M:System.Diagnostics.Contracts.Contract.Requires(System.Boolean,System.String)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
      </attribute>
    </parameter>
  </member>
  <member name="M:System.Diagnostics.Contracts.Contract.Requires``1(System.Boolean,System.String)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
      </attribute>
    </parameter>
  </member>
  <member name="M:System.Diagnostics.Contracts.Contract.Invariant(System.Boolean)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
      </attribute>
    </parameter>
  </member>
  <member name="M:System.Diagnostics.Contracts.Contract.Invariant(System.Boolean,System.String)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
      </attribute>
    </parameter>
  </member>
  <member name="M:System.Diagnostics.Contracts.Contract.Assume(System.Boolean)">
    <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
    <parameter name="condition">
      <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
        <argument>0</argument>
      </attribute>
    </parameter>
  </member>
</assembly>