I used .NET Reflector to disassemble a third party dll(so i don't have the original code). From the generated C# code i created a solution in VS 2008. I was surprised with the kind of compile errors when i tried to compile, what makes me think that there is a flaw in .Net Reflector. Here are some compile errors found.
'System.Array' does not contain a definition for 'Contains' and no extension method 'Contains' accepting a first argument of type 'System.Array' could be found (are you missing a using directive or an assembly reference?)
'decimal.operator --(decimal)': cannot explicitly call operator or accessor
'System.Collections.IEnumerator': type used in a using statement must be implicitly convertible to 'System.IDisposable'
Cannot apply indexing with  to an expression of type 'int'