internal static Identity ResolveIdentity(string URI)
{
if (URI == null)
{
throw new ArgumentNullException("URI");
}
ReaderWriterLock tableLock = IdentityHolder.TableLock;
bool flag = !tableLock.IsReaderLockHeld;
RuntimeHelpers.PrepareConstrainedRegions();
Identity result;
try
{
if (flag)
{
tableLock.AcquireReaderLock(int.MaxValue);
}
result = IdentityHolder.ResolveReference(IdentityHolder.URITable[IdentityHolder.MakeURIKey(URI)]);
}
finally
{
if (flag && tableLock.IsReaderLockHeld)
{
tableLock.ReleaseReaderLock();
}
}
return(result);
}