internal ActivatedClientTypeEntry[] GetRegisteredActivatedClientTypes()
            {
                int num = 0;

                foreach (DictionaryEntry entry in this._remoteTypeInfo)
                {
                    if (entry.Value is ActivatedClientTypeEntry)
                    {
                        num++;
                    }
                }
                ActivatedClientTypeEntry[] entryArray = new ActivatedClientTypeEntry[num];
                int num2 = 0;

                foreach (DictionaryEntry entry3 in this._remoteTypeInfo)
                {
                    ActivatedClientTypeEntry entry4 = entry3.Value as ActivatedClientTypeEntry;
                    if (entry4 != null)
                    {
                        string appUrl = null;
                        System.Runtime.Remoting.RemoteAppEntry remoteAppEntry = entry4.GetRemoteAppEntry();
                        if (remoteAppEntry != null)
                        {
                            appUrl = remoteAppEntry.GetAppURI();
                        }
                        ActivatedClientTypeEntry entry6 = new ActivatedClientTypeEntry(entry4.TypeName, entry4.AssemblyName, appUrl)
                        {
                            ContextAttributes = entry4.ContextAttributes
                        };
                        entryArray[num2++] = entry6;
                    }
                }
                return(entryArray);
            }
            internal ActivatedClientTypeEntry QueryRemoteActivate(string typeName, string assemblyName)
            {
                string str = this.EncodeTypeAndAssemblyNames(typeName, assemblyName);
                ActivatedClientTypeEntry entry = this._remoteTypeInfo[str] as ActivatedClientTypeEntry;

                if (entry == null)
                {
                    return(null);
                }
                if (entry.GetRemoteAppEntry() == null)
                {
                    System.Runtime.Remoting.RemoteAppEntry entry2 = (System.Runtime.Remoting.RemoteAppEntry) this._remoteAppInfo[entry.ApplicationUrl];
                    if (entry2 == null)
                    {
                        throw new RemotingException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Remoting_Activation_MissingRemoteAppEntry"), new object[] { entry.ApplicationUrl }));
                    }
                    entry.CacheRemoteAppEntry(entry2);
                }
                return(entry);
            }