Powershell命令用于从Appfabric缓存中删除项目

时间:2010-04-02 13:51:33

标签: .net caching appfabric

是否有powershell命令:

  1. 获取缓存中的项目列表
  2. 删除特定项目
  3. 删除所有项目
  4. 更改特定键的值
  5. 我没有遇到一个很好的博客或教程,让初学者开始使用Appfabric缓存管理。

    谢谢!

1 个答案:

答案 0 :(得分:4)

不幸的是没有:-(目前PowerShell命令的目标是更高的粒度级别。

...然而

您可以编写自己的PowerShell cmdlet,以便添加所需的额外内容: - )

网上有很多关于writing custom cmdlets的信息,但作为一个粗略的指南,它将是这样的。使用您选择的语言构建一个新的类库项目。添加对System.Management.Automation.dll的引用 - 您可以在C:\ Program Files \ Reference Assemblies \ Microsoft \ Powershell \ 1.0中找到它。创建一个继承自Cmdlet 的类,也具有Cmdlet属性。重写ProcessRecord方法并添加代码以执行您需要执行的操作。要从Powershell传递参数,您需要向类添加属性并使用Parameter属性标记它们。应该看起来像这样:

Imports System.Management.Automation 
Imports Microsoft.ApplicationServer.Caching

<Cmdlet(VerbsCommon.Remove, "CacheItem")> _
Public Class RemoveCacheItem
    Inherits Cmdlet

    Private mCacheName As String
    Private mItemKey As String

    <Parameter(Mandatory:=True, Position:=1)> _
    Public Property CacheName() As String
        Get
            Return mCacheName
        End Get
        Set(ByVal value As String)
            mCacheName = value
        End Set
    End Property

    <Parameter(Mandatory:=True, Position:=2)> _
    Public Property ItemKey() As String
        Get
            Return mItemKey
        End Get
        Set(ByVal value As String)
            mItemKey = value
        End Set
    End Property

    Protected Overrides Sub ProcessRecord()

        MyBase.ProcessRecord()

        Dim factory As DataCacheFactory
        Dim cache As DataCache

        Try
            factory = New DataCacheFactory

            cache = factory.GetCache(Me.CacheName)

            Call cache.Remove(Me.ItemKey)
        Catch ex As Exception
            Throw
        Finally
            cache = Nothing
            factory = Nothing
        End Try

    End Sub

End Class

构建DLL后,可以使用Import-Module cmdlet将其添加到Powershell中。