public static PermissionToken GetToken(String typeStr, bool bCreateMscorlib)
{
if (typeStr == null)
return null;
if (IsMscorlibClassName( typeStr ))
{
if (!bCreateMscorlib)
{
return null;
}
else
{
return FindToken( Type.GetType( typeStr ) );
}
}
else
{
PermissionToken token = s_theTokenFactory.GetToken(typeStr);
#if _DEBUG
new PermissionSet(PermissionState.Unrestricted).Assert();
StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
Type type = RuntimeType.PrivateGetType( typeStr.Trim().Replace( '\'', '\"' ),
false,
false, ref stackMark);
BCLDebug.Assert( (type == null) || (type.Module.Assembly != System.Reflection.Assembly.GetExecutingAssembly()) || (typeStr.IndexOf("mscorlib", StringComparison.Ordinal) < 0),
"We should not go through this path for mscorlib based permissions" );
#endif
return token;
}
}