private static void CheckAddedAssemblies( PolicyLevel level, ref ArrayList assemblies )
{
try
{
if (assemblies == null || level == null)
return;
IEnumerator enumerator = assemblies.GetEnumerator();
while (enumerator.MoveNext())
{
Assembly assembly = (Assembly)enumerator.Current;
StrongName sn = FindStrongName( assembly.Evidence );
if (sn == null)
{
PauseCapableWriteLine( manager.GetString( "Dialog_AssemblyNotStrongNamed" ) );
if (!GetAnswer())
throw new ExitException();
}
else if (!sn.Name.Equals( "mscorlib" ))
{
IEnumerator snEnumerator = level.FullTrustAssemblies.GetEnumerator();
bool found = false;
Evidence evidence = new Evidence();
evidence.AddHost( sn );
while (snEnumerator.MoveNext())
{
if (((StrongNameMembershipCondition)snEnumerator.Current).Check( evidence ))
{
found = true;
break;
}
}
if (!found)
{
PauseCapableWriteLine( manager.GetString( "Dialog_StrongNameAssemblyAdded1" ) );
PauseCapableWriteLine( sn.Name + " " + sn.Version );
PauseCapableWriteLine( manager.GetString( "Dialog_StrongNameAssemblyAdded2" ) );
if (GetAnswer())
{
level.AddFullTrustAssembly( sn );
}
}
}
}
}
finally
{
assemblies = new ArrayList();
}
}