When viewing a third party DLL in reflector, I get compiler generated code (see below) which I can't decipher. Is there an add-in for reflector or visual studio that can translate this back to normal code; so I can properly debug and rule this section of code out as being the cause of an issue I'm having?
Base.New.Model
{
public class StyleHeader : Entity
{
private ItemCollection _items;
[NonCacheable]
public virtual IEnumerable FilteredItems
{
get
{
<get_FilteredItems>d__0 d__ = new <get_FilteredItems>d__0(-2);
d__.<>4__this = this;
return d__;
}
}
[CompilerGenerated]
private sealed class <get_FilteredStyleItems>d__0 : IEnumerable<object>, IEnumerable, IEnumerator<object>, IEnumerator, IDisposable
{
private int <>1__state;
private object <>2__current;
public StyleHeader <>4__this;
public IEnumerator <>7__wrap2;
public IDisposable <>7__wrap3;
public StyleItem <item>5__1;
[DebuggerHidden]
public <get_FilteredStyleItems>d__0(int <>1__state)
{
this.<>1__state = <>1__state;
}
private bool MoveNext()
{
bool flag;
try
{
switch (this.<>1__state)
{
case 0:
break;
case 2:
goto Label_0093;
default:
goto Label_00DC;
}
this.<>1__state = -1;
this.<>7__wrap2 = this.<>4__this.StyleItems.GetEnumerator();
this.<>1__state = 1;
while (this.<>7__wrap2.MoveNext())
{
this.<item>5__1 = (StyleItem) this.<>7__wrap2.Current;
if (this.<item>5__1.Product.ExcludedFromWeb)
{
continue;
}
this.<>2__current = this.<item>5__1;
this.<>1__state = 2;
return true;
Label_0093:
this.<>1__state = 1;
}
this.<>1__state = -1;
this.<>7__wrap3 = this.<>7__wrap2 as IDisposable;
if (this.<>7__wrap3 != null)
{
this.<>7__wrap3.Dispose();
}
Label_00DC:
flag = false;
}
fault
{
((IDisposable) this).Dispose();
}
return flag;
}
[DebuggerHidden]
IEnumerator<object> IEnumerable<object>.GetEnumerator()
{
if (Interlocked.CompareExchange(ref this.<>1__state, 0, -2) == -2)
{
return this;
}
StyleHeader.<get_FilteredStyleItems>d__0 d__ = new StyleHeader.<get_FilteredStyleItems>d__0(0);
d__.<>4__this = this.<>4__this;
return d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return this.System.Collections.Generic.IEnumerable<System.Object>.GetEnumerator();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
void IDisposable.Dispose()
{
switch (this.<>1__state)
{
case 1:
case 2:
try
{
}
finally
{
this.<>1__state = -1;
this.<>7__wrap3 = this.<>7__wrap2 as IDisposable;
if (this.<>7__wrap3 != null)
{
this.<>7__wrap3.Dispose();
}
}
break;
}
}
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return this.<>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return this.<>2__current;
}
}
}
}
:?:
:?: