internal static void ExecuteInServerManagerTransaction(bool iisExpress, Action <dynamic, EnumGetter> method)
        {
            var assembly = getAssembly(iisExpress);

            using (dynamic serverManager = assembly.CreateInstance("Microsoft.Web.Administration.ServerManager")) {
                EnumGetter enumGetter = (typeName, valueName) => Enum.Parse(assembly.GetType(typeName), valueName);
                method(serverManager, enumGetter);
                serverManager.CommitChanges();
            }
        }
예제 #2
0
        public static IEnumerable <T> VdsEnumerate <T>(EnumGetter enumGet)
        {
            IEnumVdsObject ppEnum;

            enumGet(out ppEnum);
            while (true)
            {
                uint   fetched;
                object unknown;
                ppEnum.Next(1, out unknown, out fetched);

                if (fetched == 0 || unknown == null)
                {
                    break;
                }

                yield return((T)unknown);
            }
        }