Paul,
This behavior is actually expected. It is considered a potential security
risk to be able to bypass a derived virtual method. This is a safe and
legal operation within your own class heirarchy (ie base.VirtualMethod())
but not in a different class.
What problem are you trying to solve by bypassing the derived GetHashCode?
Brian Stern [MSFT]
"Paul Hatcher" <paulh@grassoc.co.uk> wrote in
news:O7h5l0S7GHA.1492@TK2MSFTNGP02.phx.gbl:
[quoted text, click to view] > Hi
>
> We have a requirement to get the non-virtual version of GetHashCode
> for any object (value or reference type). There is a call
> System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode, but this
> fails under some circumstances on 1.1 when passed Int32 and so we have
> some IL code to achieve the same thing.
>
> Unforturnately under medium trust, this fails with a
> VerificationException, which I belive means that it can't determine
> whether we are type safe or not. Can anyone help and tell me if this
> is type-safe and if so how to pass the security check.
>
> BTW The assembly is signed and has the AllowPartiallyTrustedCaller and
> CLSCompliant attributes applied (I've left these out of the IL for
> space purposes)
>
> ...