ResolveReference() private static method

private static ResolveReference ( Object o ) : Identity
o Object
return Identity
コード例 #1
0
        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);
        }