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