Как создать регионы в App Fabric через Powershell - PullRequest
2 голосов
/ 07 марта 2012

Я думаю, что заголовок понятен, я брожу по сети около часа, но на каждой странице рассказывается о динамическом создании регионов с использованием .net.Я уверен, что у нас есть команда для выполнения на powershell.ты знаешь это?

Заранее спасибо,

1 Ответ

4 голосов
/ 07 марта 2012

Нет встроенного командлета Powershell для создания / управления регионами.

Решение - напиши одно!

Как сказал Даниэль Ричнак в комментариях, Powershell - это .NET под прикрытием, и это означает, что вы можете написать дополнительные командлеты Powershell, чтобы заполнить пробелы.

Командлет - это обычный класс, который наследуется от System.Management.Automation.Cmdlet, и он также украшен атрибутом System.Management.Automation.Cmdlet. Чтобы заставить его работать, нужно переопределить метод ProcessRecord. Параметры командной строки реализованы как свойства класса, украшенные атрибутом System.Management.Automation.Parameter. Таким образом, командлет для создания регионов будет выглядеть примерно так:

using System.Management.Automation;
using Microsoft.ApplicationServer.Caching;

[Cmdlet(VerbsCommon.New, "CacheRegion")]
public class NewCacheRegion : Cmdlet
{
    [Parameter(Mandatory = true, Position = 1)]
    public string Cache { get; set; }
    [Parameter(Mandatory = true, Position = 2)]
    public string Region { get; set; }

    protected override void ProcessRecord()
    {
        base.ProcessRecord();

        DataCacheFactory factory = new DataCacheFactory();
        DataCache cache = factory.GetCache(Cache);

        try
        {
            cache.CreateRegion(Region);
        }
        catch (DataCacheException ex)
        {
            if (ex.ErrorCode == DataCacheErrorCode.RegionAlreadyExists)
            {
                Console.WriteLine(string.Format("There is already a region named {0} in the cache {1}.", Region, Cache));
            }
        }
    }
}
...