2012-03-06 1 views
2

제목이 분명하다고 생각합니다. 한 시간 쯤 웹 서핑을하고 있지만, 모든 단일 페이지에서는 .net을 사용하여 동적으로 영역을 만드는 방법에 대해 이야기합니다. PowerShell에서 실행할 명령이 있다고 확신합니다. 너는 그것을 안다? 사전에Powershell을 통해 App Fabric에서 영역을 만드는 방법

감사합니다,

+0

.NET의 예제 링크는 무엇입니까? PowerShell은 .NET을 기반으로하며 .NET 네임 스페이스를 가져올 수 있으므로 C# 샘플에서의 변환은 대개 사소합니다. –

+0

appfabric과 관련하여 지역은 무엇입니까? 그것을 결코 들어 보지 못했다. appfabric 캐싱 또는 wcf 호스팅? – x0n

+0

@ x0n 지역에 대한 설명은 http://msdn.microsoft.com/en-us/library/ee790985.aspx – PhilPursglove

답변

4

더 파워 쉘 커맨드는 지역을 관리/만들기위한 상자 밖으로 없습니다.

해결책 - 쓰기!

Daniel Richnak이 의견에서 언급했듯이 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)); 
      } 
     } 
    } 
} 
+0

위대한 답변을 주셔서 감사합니다! – anilca