Click here to Skip to main content
12,504,695 members (62,557 online)
Click here to Skip to main content

Stats

74.5K views
64 downloads
116 bookmarked
Posted

Who cares about Domain Rules?

, 20 Nov 2006 MIT
With this article, I am evolving a domain problem towards the best possible solution.
BusinessRules
0 - Procedural_Way
0 - Procedural_Way.smp
ProceduralWay.cd
Tests
1 - Evolution One
1 - Evolution One.smp
EvolutionOne.cd
Tests
2 - Evolution Two
2 - Evolution Two.smp
EvolutionTwo.cd
Tests
3 - Evolution Three
3 - Evolution Three.smp
EvolutionThree.cd
IncomeTaxEngine.cd
Tests
4 - Evolution Four
4 - Evolution Four.smp
EvolutionFour.cd
Tests
5 - Evolution Five
5 - Evolution Five.smp
EvolutionFive.cd
TaxBandGenerator.cd
Tests
bin
Debug
BusinessRules.dll
BusinessRules.dll.lastcodeanalysissucceeded
NMock2.dll
BusinessRules.csproj.user
obj
Debug
BusinessRules.dll
TempPE
Properties
Tools
NMock2.dll
nunit.framework.dll
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="c:\program files (x86)\microsoft visual studio 8\team tools\static analysis tools\fxcop\Xml\CodeAnalysisReport.Xsl"?>
<FxCopReport Version="8">
 <Namespaces>
  <Namespace Name="BusinessRules.Evolution_Five">
   <Messages>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Five'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Five.Tests">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Evolution_Five.Tests' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Five.Tests'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Four">
   <Messages>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Four'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Four.Tests">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Evolution_Four.Tests' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Four.Tests'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_One">
   <Messages>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_One'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_One.Tests">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Evolution_One.Tests' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_One.Tests'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Three">
   <Messages>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Three'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Three.Tests">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Evolution_Three.Tests' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Three.Tests'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Two">
   <Messages>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Two'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Evolution_Two.Tests">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Evolution_Two.Tests' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Evolution_Two.Tests'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Procedural_Way">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Procedural_Way' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Procedural_Way'.</Issue>
    </Message>
   </Messages>
  </Namespace>
  <Namespace Name="BusinessRules.Procedural_Way.Tests">
   <Messages>
    <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Certainty="50" Level="Warning">Consider merging the types defined in 'BusinessRules.Procedural_Way.Tests' with another namespace.</Issue>
    </Message>
    <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
     <Issue Name="Namespace" Certainty="95" Level="Error">Remove all underscores from namespace 'BusinessRules.Procedural_Way.Tests'.</Issue>
    </Message>
   </Messages>
  </Namespace>
 </Namespaces>
 <Targets>
  <Target Name="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\bin\Debug\BusinessRules.dll">
   <Modules>
    <Module Name="businessrules.dll">
     <Messages>
      <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
       <Issue Certainty="95" Level="CriticalError">No valid permission requests were found for assembly 'BusinessRules'. You should always specify the minimum security permissions using SecurityAction.RequestMinimum.</Issue>
      </Message>
      <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
       <Issue Name="NoStrongName" Certainty="95" Level="CriticalError">Sign 'BusinessRules' with a strong name key.</Issue>
      </Message>
      <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
       <Issue Name="NoAttr" Certainty="95" Level="Error">'BusinessRules' should be marked with CLSCompliantAttribute and its value should be true.</Issue>
      </Message>
     </Messages>
     <Namespaces>
      <Namespace Name="BusinessRules.Evolution_Five">
       <Types>
        <Type Name="IInvestor" Kind="Interface" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxEngine" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error">Add a property getter to 'TaxEngine'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="Investor" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxEngine" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five" File="Investor.cs" Line="64">Add a property getter to 'TaxEngine'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="ITaxBandGenerator" Kind="Interface" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="CreateTaxBands():System.Collections.Generic.List`1&lt;BusinessRules.Evolution_Five.TaxBand&gt;" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error">Change 'System.Collections.Generic.List`1&lt;BusinessRules.Evolution_Five.TaxBand&gt;' in ITaxBandGenerator.CreateTaxBands():List`1&lt;BusinessRules.Evolution_Five.TaxBand&gt; to use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt;</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="TaxBand" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="EqualToOrGreaterThan(System.Double,System.Double):System.Boolean" Kind="Method" Static="False" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five" File="TaxBand.cs" Line="100">The 'this' parameter (or 'Me' in VB) of TaxBand.EqualToOrGreaterThan(Double, Double):Boolean is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="EqualToOrLessThan(System.Double,System.Double):System.Boolean" Kind="Method" Static="False" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five" File="TaxBand.cs" Line="113">The 'this' parameter (or 'Me' in VB) of TaxBand.EqualToOrLessThan(Double, Double):Boolean is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="TaxBandGenerator" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="CreateInstance(BusinessRules.Evolution_Five.ICurrentCultureInfo):BusinessRules.Evolution_Five.ITaxBandGenerator" Kind="Method" Static="True" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five" File="TaxBandGenerator.cs" Line="33">Validate parameter 'cultureInfo' passed to externally visible method TaxBandGenerator.CreateInstance(ICurrentCultureInfo):ITaxBandGenerator.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="CreateTaxBands():System.Collections.Generic.List`1&lt;BusinessRules.Evolution_Five.TaxBand&gt;" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error">Change 'System.Collections.Generic.List`1&lt;BusinessRules.Evolution_Five.TaxBand&gt;' in TaxBandGenerator.CreateTaxBands():List`1&lt;BusinessRules.Evolution_Five.TaxBand&gt; to use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt;</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Five.Tests">
       <Types>
        <Type Name="IncomeTaxBandGeneratorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Five.Tests.IncomeTaxBandGeneratorFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxBandGeneratorFixture.cs" Line="15">IncomeTaxBandGeneratorFixture.IncomeTaxBandGeneratorFixture() initializes field currentCulture of type BusinessRules.Evolution_Five.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxBandGeneratorFixture.cs" Line="15">IncomeTaxBandGeneratorFixture.IncomeTaxBandGeneratorFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="IncomeTaxEngineFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Five.Tests.IncomeTaxEngineFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxEngineFixture.cs" Line="15">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field currentCulture of type BusinessRules.Evolution_Five.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxEngineFixture.cs" Line="15">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field incomeTaxEngine of type BusinessRules.Evolution_Five.IIncomeTaxEngine to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxEngineFixture.cs" Line="15">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForUSABands():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Name="Member" Certainty="85" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxEngineFixture.cs" Line="67">Correct the capitalization of member name 'IncomeTaxEngineFixture.TaxLiabilityCalculatedCorrectlyForUSABands():Void'.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForUSABands():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Name="Member" Certainty="85" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="IncomeTaxEngineFixture.cs" Line="31">Correct the capitalization of member name 'IncomeTaxEngineFixture.TaxRateCalculatedCorrectlyForUSABands():Void'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="InvestorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Five.Tests.InvestorFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="InvestorFixture.cs" Line="15">InvestorFixture.InvestorFixture() initializes field currentCulture of type BusinessRules.Evolution_Five.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="InvestorFixture.cs" Line="15">InvestorFixture.InvestorFixture() initializes field incomeTaxEngine of type BusinessRules.Evolution_Five.IIncomeTaxEngine to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\5 - Evolution Five\Tests" File="InvestorFixture.cs" Line="15">InvestorFixture.InvestorFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Four">
       <Types>
        <Type Name="IInvestor" Kind="Interface" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxEngine" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error">Add a property getter to 'TaxEngine'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="IncomeTaxEngine" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="CreateInstance(BusinessRules.Evolution_Four.ICurrentCultureInfo):BusinessRules.Evolution_Four.IIncomeTaxEngine" Kind="Method" Static="True" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four" File="IncomeTaxEngine.cs" Line="31">Validate parameter 'cultureInfo' passed to externally visible method IncomeTaxEngine.CreateInstance(ICurrentCultureInfo):IIncomeTaxEngine.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="Investor" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxEngine" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four" File="Investor.cs" Line="65">Add a property getter to 'TaxEngine'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Four.Tests">
       <Types>
        <Type Name="IncomeTaxEngineCreationFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Four.Tests.IncomeTaxEngineCreationFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineCreationFixture.cs" Line="10">IncomeTaxEngineCreationFixture.IncomeTaxEngineCreationFixture() initializes field currentCulture of type BusinessRules.Evolution_Four.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineCreationFixture.cs" Line="10">IncomeTaxEngineCreationFixture.IncomeTaxEngineCreationFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="IncomeTaxEngineFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Four.Tests.IncomeTaxEngineFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineFixture.cs" Line="10">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field currentCulture of type BusinessRules.Evolution_Four.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineFixture.cs" Line="10">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field incomeTaxEngine of type BusinessRules.Evolution_Four.IIncomeTaxEngine to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineFixture.cs" Line="10">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="ValidateTaxLiabilityCalculatedCorrectlyForUSATaxEngine():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Name="Member" Certainty="85" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineFixture.cs" Line="62">Correct the capitalization of member name 'IncomeTaxEngineFixture.ValidateTaxLiabilityCalculatedCorrectlyForUSATaxEngine():Void'.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="ValidateTaxRateCalculatedCorrectlyForForUSATaxEngine():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Name="Member" Certainty="85" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="IncomeTaxEngineFixture.cs" Line="26">Correct the capitalization of member name 'IncomeTaxEngineFixture.ValidateTaxRateCalculatedCorrectlyForForUSATaxEngine():Void'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="InvestorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Four.Tests.InvestorFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field currentCulture of type BusinessRules.Evolution_Four.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field incomeTaxEngine of type BusinessRules.Evolution_Four.IIncomeTaxEngine to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\4 - Evolution Four\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_One.Tests">
       <Types>
        <Type Name="InvestorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxLiabilityCalculatedCorrectlyForAustralia():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="153">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForAustralia():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForNewZealand():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="229">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForNewZealand():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForNonExceptionalBehavior():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="297">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForNonExceptionalBehavior():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForUS():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="60">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForUS():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForAustralia():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="110">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForAustralia():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForNewZealand():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="196">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForNewZealand():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForNonExceptionalBehavior():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="264">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForNonExceptionalBehavior():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForUS():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\1 - Evolution One\Tests" File="InvestorFixture.cs" Line="10">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForUS():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Three">
       <Types>
        <Type Name="CurrentCultureInfo" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three" File="CurrentCultureInfo.cs" Line="14">CurrentCultureInfo.CurrentCultureInfo() initializes field cultureInfo of type System.Globalization.CultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="IInvestor" Kind="Interface" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxEngine" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error">Add a property getter to 'TaxEngine'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="IncomeTaxEngine" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="CreateInstance(BusinessRules.Evolution_Three.ICurrentCultureInfo):BusinessRules.Evolution_Three.IIncomeTaxEngine" Kind="Method" Static="True" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three" File="IncomeTaxEngine.cs" Line="30">Validate parameter 'cultureInfo' passed to externally visible method IncomeTaxEngine.CreateInstance(ICurrentCultureInfo):IIncomeTaxEngine.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="Investor" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxEngine" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three" File="Investor.cs" Line="64">Add a property getter to 'TaxEngine'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Three.Tests">
       <Types>
        <Type Name="IncomeTaxEngineCreationFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Three.Tests.IncomeTaxEngineCreationFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="IncomeTaxEngineCreationFixture.cs" Line="10">IncomeTaxEngineCreationFixture.IncomeTaxEngineCreationFixture() initializes field currentCulture of type BusinessRules.Evolution_Three.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="IncomeTaxEngineCreationFixture.cs" Line="10">IncomeTaxEngineCreationFixture.IncomeTaxEngineCreationFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="IncomeTaxEngineFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Three.Tests.IncomeTaxEngineFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="IncomeTaxEngineFixture.cs" Line="10">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field currentCulture of type BusinessRules.Evolution_Three.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="IncomeTaxEngineFixture.cs" Line="10">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field incomeTaxEngine of type BusinessRules.Evolution_Three.IIncomeTaxEngine to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="IncomeTaxEngineFixture.cs" Line="10">IncomeTaxEngineFixture.IncomeTaxEngineFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="ValidateCalculateTaxLiabilityForUSATaxEngine():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Name="Member" Certainty="85" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="IncomeTaxEngineFixture.cs" Line="62">Correct the capitalization of member name 'IncomeTaxEngineFixture.ValidateCalculateTaxLiabilityForUSATaxEngine():Void'.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="InvestorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Three.Tests.InvestorFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field currentCulture of type BusinessRules.Evolution_Three.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field incomeTaxEngine of type BusinessRules.Evolution_Three.IIncomeTaxEngine to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\3 - Evolution Three\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Two">
       <Types>
        <Type Name="CurrentCultureInfo" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two" File="CurrentCultureInfo.cs" Line="14">CurrentCultureInfo.CurrentCultureInfo() initializes field cultureInfo of type System.Globalization.CultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="Investor" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="CreateInvestor(BusinessRules.Evolution_Two.ICurrentCultureInfo,System.Double):BusinessRules.Evolution_Two.Investor" Kind="Method" Static="True" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="95" Level="Error" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two" File="Investor.cs" Line="49">Validate parameter 'cultureInfo' passed to externally visible method Investor.CreateInvestor(ICurrentCultureInfo, Double):Investor.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="NullInvestor" Kind="Class" Accessibility="Assembly" ExternallyVisible="False">
         <Members>
          <Member Name=".ctor(System.Double)" Kind="Method" Static="False" Accessibility="Assembly" ExternallyVisible="False">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two" File="NullInvestor.cs" Line="18">NullInvestor.NullInvestor(Double) initializes field taxLiability of type System.Double to 0.0. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two" File="NullInvestor.cs" Line="18">NullInvestor.NullInvestor(Double) initializes field taxRate of type System.Double to 0.0. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Evolution_Two.Tests">
       <Types>
        <Type Name="InvestorCreationFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Two.Tests.InvestorCreationFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two\Tests" File="InvestorCreationFixture.cs" Line="10">InvestorCreationFixture.InvestorCreationFixture() initializes field currentCulture of type BusinessRules.Evolution_Two.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two\Tests" File="InvestorCreationFixture.cs" Line="10">InvestorCreationFixture.InvestorCreationFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="InvestorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
           <Issue Certainty="95" Level="CriticalError">Implement IDisposable on 'BusinessRules.Evolution_Two.Tests.InvestorFixture' as it instantiates members of the following IDisposable types: NMock2.Mockery</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name=".ctor()" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field currentCulture of type BusinessRules.Evolution_Two.ICurrentCultureInfo to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field investor of type BusinessRules.Evolution_Two.IInvestor to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
             <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\2 - Evolution Two\Tests" File="InvestorFixture.cs" Line="10">InvestorFixture.InvestorFixture() initializes field mocks of type NMock2.Mockery to null. Remove this initialization as it will be done automatically by the runtime.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Procedural_Way">
       <Types>
        <Type Name="Investor" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxLiability" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Accessors>
            <Accessor Name="get_TaxLiability():System.Double" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
             <Messages>
              <Message TypeName="AvoidExcessiveComplexity" Category="Microsoft.Maintainability" CheckId="CA1502" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
               <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way" File="Investor.cs" Line="49">get_TaxLiability has a cyclomatic complexity of 37. Rewrite or refactor the method to reduce complexity to 25.</Issue>
              </Message>
             </Messages>
            </Accessor>
           </Accessors>
          </Member>
          <Member Name="TaxRate" Kind="Property" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Accessors>
            <Accessor Name="get_TaxRate():System.Double" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
             <Messages>
              <Message TypeName="AvoidExcessiveComplexity" Category="Microsoft.Maintainability" CheckId="CA1502" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="NonBreaking">
               <Issue Certainty="90" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way" File="Investor.cs" Line="174">get_TaxRate has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25.</Issue>
              </Message>
             </Messages>
            </Accessor>
           </Accessors>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
      <Namespace Name="BusinessRules.Procedural_Way.Tests">
       <Types>
        <Type Name="InvestorFixture" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="TaxLiabilityCalculatedCorrectlyForAustralia():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="159">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForAustralia():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForNewZealand():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="239">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForNewZealand():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForNonExceptionalBehavior():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="311">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForNonExceptionalBehavior():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxLiabilityCalculatedCorrectlyForUS():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="62">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxLiabilityCalculatedCorrectlyForUS():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForAustralia():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="114">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForAustralia():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForNewZealand():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="204">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForNewZealand():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForNonExceptionalBehavior():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="276">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForNonExceptionalBehavior():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="TaxRateCalculatedCorrectlyForUS():System.Void" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Status="Active" Created="2006-11-21 09:08:29Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="Warning" Path="C:\Documents and Settings\Maruis Marais\My Documents\Visual Studio 2005\Projects\BusinessRules\BusinessRules\0 - Procedural_Way\Tests" File="InvestorFixture.cs" Line="10">The 'this' parameter (or 'Me' in VB) of InvestorFixture.TaxRateCalculatedCorrectlyForUS():Void is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
     </Namespaces>
    </Module>
   </Modules>
  </Target>
 </Targets>
 <Rules>
  <Rule TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209">
   <Name>Assemblies should declare minimum security</Name>
   <Description>Permission requests prevent security exceptions from being thrown after code in an assembly has already begun executing. If permission requests are specified on an assembly, the assembly will not load at runtime if it has insufficient permissions. To resolve violations of this rule, add attributes that specify what permissions the assembly will demand or might demand, and what permissions it does not want granted.  To specify required permissions, use SecurityAction.Minimum. To specify permissions that the assembly might demand, use SecurityAction.RequestOptional. To specify permissions that the assembly must not be granted, use SecurityAction.RequestRefuse.</Description>
   <Resolution Name="Default">No valid permission requests were found for assembly '{0}'. You should always specify the minimum security permissions using SecurityAction.RequestMinimum.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">CriticalError</MessageLevel>
   <File Name="UsageRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210">
   <Name>Assemblies should have valid strong names</Name>
   <Description>Either the assembly has no strong name, an invalid one, or the strong name is valid only because of the computer configuration. The assembly should not be deployed in this state. The most common causes of this are: 1) The assembly's contents were modified after it was signed. 2) The signing process failed. 3) The assembly was delay-signed. 4) A registry key existed that allowed the check to pass (where it would not have otherwise).</Description>
   <Resolution Name="NoStrongName">Sign '{0}' with a strong name key.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">CriticalError</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="AvoidExcessiveComplexity" Category="Microsoft.Maintainability" CheckId="CA1502">
   <Name>Avoid excessive complexity</Name>
   <Description>Method implementations that are exceedingly complex increase the challenge of understanding and maintaining code.</Description>
   <Resolution Name="Default">{0} has a cyclomatic complexity of {1}. Rewrite or refactor the method to reduce complexity to {2}.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="90">Warning</MessageLevel>
   <File Name="MaintainabilityRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020">
   <Name>Avoid namespaces with few types</Name>
   <Description>A namespace should generally have more than five types.</Description>
   <Resolution Name="Default">Consider merging the types defined in '{0}' with another namespace.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="50">Warning</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002">
   <Name>Do not expose generic lists</Name>
   <Description>Do not expose List&lt;T&gt; in object models. Use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt; instead. List&lt;T&gt; is meant to be used from implementation, not in object model API. List&lt;T&gt; is optimized for performance at the cost of long term versioning. For example, if you return List&lt;T&gt; to the client code, you will not ever be able to receive notifications when client code modifies the collection.</Description>
   <Resolution Name="Default">Change '{0}' in {1} to use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt;</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Error</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805">
   <Name>Do not initialize unnecessarily</Name>
   <Description>Do not make initializations that have already been done by the runtime.</Description>
   <Resolution Name="Default">{0} initializes field {1} of type {2} to {3}. Remove this initialization as it will be done automatically by the runtime.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="90">Warning</MessageLevel>
   <File Name="PerformanceRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707">
   <Name>Identifiers should not contain underscores</Name>
   <Description>Do not use underscores when specifying identifiers. Some generated Visual Studio identifiers for applications contain underscore characters. Underscore characters should generally be avoided in public identifiers.</Description>
   <Resolution Name="Namespace">Remove all underscores from namespace '{0}'.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Error</MessageLevel>
   <File Name="NamingRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705">
   <Name>Long acronyms should be pascal-cased</Name>
   <Description>Acronyms of three or more letters should be Pascal-cased. For example, use XmlSpace rather than XMLSpace. A violation of this rule might be required for compatibility with existing, non-managed symbol schemes. In general, however, these symbols should not be visible outside the assembly that uses them.</Description>
   <Resolution Name="Member">Correct the capitalization of member name '{0}'.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="85">Error</MessageLevel>
   <File Name="NamingRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014">
   <Name>Mark assemblies with CLSCompliant</Name>
   <Description>Assemblies should explicitly state their Cls compliance using the CLSCompliant attribute. An assembly without this attribute is not CLS-compliant. Assemblies, modules, and types can be CLS-compliant even if some parts of the assembly, module, or type are not CLS-compliant. The following rules apply: 1) If the element is marked CLSCompliant, any noncompliant members must have the CLSCompliant attribute present with its argument set to false. 2) A comparable CLS-compliant alternative member must be supplied for each member that is not CLS-compliant.</Description>
   <Resolution Name="NoAttr">'{0}' should be marked with CLSCompliantAttribute and its value should be true.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Error</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822">
   <Name>Mark members as static</Name>
   <Description>Methods which do not access instance data or call instance methods can be marked as static (Shared in VB). After doing so, the compiler will emit non-virtual call sites to these members which will prevent a check at runtime for each call that insures the current object pointer is non-null. This can result in a measurable performance gain for performance-sensitive code. In some cases, the failure to access the current object instance represents a correctness issue.</Description>
   <Resolution Name="Default">The 'this' parameter (or 'Me' in VB) of {0} is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Warning</MessageLevel>
   <File Name="PerformanceRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044">
   <Name>Properties should not be write only</Name>
   <Description>Write-only properties usually indicate a flawed design.</Description>
   <Resolution Name="Default">Add a property getter to '{0}'.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Error</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001">
   <Name>Types that own disposable fields should be disposable</Name>
   <Description>Types that declare disposable members should also implement IDisposable. If the type does not own any unmanaged resources, do not implement a finalizer on it.</Description>
   <Resolution Name="Default">Implement IDisposable on '{0}' as it instantiates members of the following IDisposable types: {1}</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">CriticalError</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
  <Rule TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062">
   <Name>Validate arguments of public methods</Name>
   <Description>All reference arguments passed to public methods should be tested against null (Nothing in VB), as they can be provided by arbitrary callers.</Description>
   <Resolution Name="Default">Validate parameter {0} passed to externally visible method {1}.</Resolution>
   <Owner />
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Error</MessageLevel>
   <File Name="DesignRules.dll" Version="8.0.0.0" />
  </Rule>
 </Rules>
 <Localized>
  <String Key="Category">Category</String>
  <String Key="CollapseAll">Collapse All</String>
  <String Key="CheckId">Check Id</String>
  <String Key="Error">Error</String>
  <String Key="Errors">error(s)</String>
  <String Key="Line">Line</String>
  <String Key="LocationNotStoredInPdb">&lt;Location not stored in Pdb&gt;</String>
  <String Key="Project">Project</String>
  <String Key="Rule">Rule</String>
  <String Key="RuleDescription">Rule Description</String>
  <String Key="Source">Source</String>
  <String Key="Target">Target</String>
  <String Key="Warning">Warning</String>
  <String Key="Warnings">warning(s)</String>
  <String Key="ReportTitle">Microsoft Visual Studio 2005 Code Analysis Report</String>
 </Localized>
</FxCopReport>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License

Share

About the Author

Maruis Marais
Web Developer
New Zealand New Zealand
No Biography provided

You may also be interested in...

Pro
Pro
| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160919.1 | Last Updated 21 Nov 2006
Article Copyright 2006 by Maruis Marais
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid