How to mole System.dll

Problem:

I get “no suitable method found to override” errors when I mole system.dll.

Solution:

Modify the System.moles file in your project and exclude everything except the types you are trying to mole.

Explanation:

I was trying to mole the SerialPort class in System.IO.Ports. After adding the mole for System.dll I began to get “no suitable method found to override” errors.  To resolve this issue I simply double clicked the System.moles file to open it in my IDE.  Then I modified the file so that moles were created only for the types under System.IO.  Change System.moles from this:

<Moles xmlns="http://schemas.microsoft.com/moles/2010/">
  <Assembly Name="System" />
</Moles>

to this:

<Moles xmlns="http://schemas.microsoft.com/moles/2010/">
   <Assembly Name="System" />
   <StubGeneration>
      <Types>
         <Clear />
         <Add Namespace="System.IO!" />
      </Types>
   </StubGeneration>
</Moles>

Comments are closed