bool CanCastToWK(Type castType)
{
Message.DebugOut( "CheckCast for well known objects and type " + castType);
bool fCastOK = false;
// Check whether the type to which we want to cast is
// compatible with the current type
if(castType.IsClass)
{
fCastOK = GetProxiedType().IsAssignableFrom(castType);
}
else
{
// NOTE: we are coming here also for x-context proxies
// when unmanaged code cannot determine if the cast is not
// okay
if (!(IdentityObject is ServerIdentity))
{
BCLDebug.Assert(
IdentityObject.URI != null,
"Bad WellKnown ID");
// Always allow interface casts to succeed. If the
// interface is not supported by the well known object
// then we will throw an exception when the interface
// is invoked.
fCastOK = true;
}
}
return fCastOK;
}
}