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); }