Microsoft.Win32.Fusion.ReadCache C# (CSharp) Méthode

ReadCache() public static méthode

public static ReadCache ( ArrayList alAssems, String name, uint nFlag ) : void
alAssems System.Collections.ArrayList
name String
nFlag uint
Résultat void
        public static void ReadCache(ArrayList alAssems, String name, uint nFlag)
        {
            SafeFusionHandle aEnum      = null;
            SafeFusionHandle aNameEnum  = null;
            SafeFusionHandle AppCtx     = SafeFusionHandle.InvalidHandle;
            int hr;
            
            if (name != null) {
                hr = Win32Native.CreateAssemblyNameObject(out aNameEnum, name, CANOF.PARSE_DISPLAY_NAME, IntPtr.Zero);
                if (hr != 0)
                    Marshal.ThrowExceptionForHR(hr);
            }

            using (aNameEnum) {
            
                hr = Win32Native.CreateAssemblyEnum(out aEnum, AppCtx, aNameEnum, nFlag, IntPtr.Zero);
                if (hr != 0)
                    Marshal.ThrowExceptionForHR(hr);
            
                using (aEnum) {
            
                    for (;;) using (SafeFusionHandle aAppCtx = new SafeFusionHandle(), aName = new SafeFusionHandle())
                    {
                        if (!GetNextAssembly(aEnum, aAppCtx, aName, 0))
                            break;

                        String sDisplayName = GetDisplayName(aName, 0);
                        if (sDisplayName == null)
                            continue;

                        alAssems.Add(sDisplayName);
                    }
            
                } // using (aEnum)
            } // using (aNameEnum)
        }