Peter Duniho replied to Matthias Truxa
09-Feb-10 12:15 PM

No, the problem is fundamental to the way client applications work. For
managed code, it is slightly easier to reverse-engineer the code, but
the same issue exists for unmanaged code too. There have been
decompilers around since long before .NET has existed, including those
which work for native compiled code.
As Willem says, the only way to prevent someone else from reverse
engineering your code is to not deliver it to them in the first place.
This is true no matter what language, framework, compilation, etc. that
the code uses.
Frankly, had .NET attempted to enforce reflection-based restrictions,
those restrictions would only provide a false sense of security. The
way things are now, you have a very realistic sense of what is possible
and what is not. If .NET had tried to prevent reflection of code based
on security permissions, it would simply have misled people into
thinking that there is a way to prevent reflection of code based on
security permissions.
Pete