Partilhar via


Classe FeatureConnector<TFeatureProviderType>

Fornece uma implementação básica para todos os extensibilidade baseada no conector do recurso.

Hierarquia de herança

System.Object
  Microsoft.Windows.Design.Features.FeatureConnector<TFeatureProviderType>
    Microsoft.Windows.Design.Policies.PolicyDrivenFeatureConnector<TFeatureProviderType>

Namespace:  Microsoft.Windows.Design.Features
Assembly:  Microsoft.Windows.Design.Extensibility (em Microsoft.Windows.Design.Extensibility.dll)

Sintaxe

'Declaração
Public MustInherit Class FeatureConnector(Of TFeatureProviderType As FeatureProvider) _
    Implements IDisposable
public abstract class FeatureConnector<TFeatureProviderType> : IDisposable
where TFeatureProviderType : FeatureProvider
generic<typename TFeatureProviderType>
where TFeatureProviderType : FeatureProvider
public ref class FeatureConnector abstract : IDisposable
[<AbstractClass>]
type FeatureConnector<'TFeatureProviderType when 'TFeatureProviderType : FeatureProvider> =  
    class
        interface IDisposable
    end
O JScript não oferece suporte a tipos ou métodos genéricos.

Parâmetros de tipo

  • TFeatureProviderType
    O tipo de provedor de recurso.

O tipo FeatureConnector<TFeatureProviderType> expõe os membros a seguir.

Construtores

  Nome Descrição
Método protegido FeatureConnector<TFeatureProviderType> Initializes a new instance of the FeatureConnector<TFeatureProviderType> class.

Início

Propriedades

  Nome Descrição
Propriedade protegida Context Obtém o contexto de edição para o conector do recurso.
Propriedade protegida Manager Obtém o FeatureManager para o recurso de conector.

Início

Métodos

  Nome Descrição
Método protegido CreateFeatureProviders(Type) Cria uma nova lista de provedores de recurso associado com o conector do recurso, com base no tipo fornecido.
Método protegido CreateFeatureProviders<TSubtype>(Type) Cria uma nova lista de provedores de recurso associado com o conector do recurso, com base no tipo fornecido e subtipo.
Método público Dispose() Libera todos os recursos usados pela FeatureConnector<TFeatureProviderType>.
Método protegido Dispose(Boolean) Libera os recursos não gerenciados usados pela FeatureConnector<TFeatureProviderType> e, opcionalmente, libera os recursos gerenciados.
Método público Equals Determina se o especificado Object é igual a atual Object. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Substitui Object.Finalize().)
Método público GetHashCode Serves as a hash function for a particular type. (Herdado de Object.)
Método público GetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)

Início

Comentários

Derivar abstrata FeatureConnector<TFeatureProviderType> classe quando você precisa implementar o nível mais profundo de integração com o WPF Designer. Feature connectors can subscribe to global services and can add their own services.

O uso de provedores de recursos FeatureConnectorAttribute para especificar o conector de recurso associado.

The FeatureConnector<TFeatureProviderType> base class is generic and consumes the type of the feature provider that the FeatureConnector<TFeatureProviderType> hosts.

Feature connectors are demand-created. Quando o FeatureManager classe detecta um FeatureConnectorAttribute em um FeatureProvider, cria especificado FeatureConnector<TFeatureProviderType>, se ainda não existir.

Resumo FeatureConnector<TFeatureProviderType> classe implementa o IDisposable interface, que promove uma implementação de limpeza simple.

Maioria da funcionalidade da FeatureConnector<TFeatureProviderType> classe é implementada no protegido CreateFeatureProviders métodos. Passing an object into this method causes the feature connector to search for FeatureAttribute types on the object. If these attributes are found, the FeatureProvider instance associated with each attribute is created and returned in a list.

Exemplos

The following code example shows how to derive from the FeatureConnector<TFeatureProviderType> class to connect a custom feature provider named DiagnosticsMenuProvider with a custom service named IDiagnosticsService. For a complete code listing, see Como: Criar um Conector de Recursos Personalizado.

' The IDiagnosticsService specifies a simple interface for showing
' a FeatureManagerDiagnostics window.
Interface IDiagnosticsService
    Sub ShowWindow() 
End Interface


...


' The DiagnosticsFeatureConnector publishes the IDiagnosticsService. 
Class DiagnosticsFeatureConnector
    Inherits FeatureConnector(Of DiagnosticsMenuProvider)
    Implements IDiagnosticsService

    Dim fmdWindow As FeatureManagerDiagnostics

    Public Sub New(ByVal manager As FeatureManager) 
        MyBase.New(manager)

        Context.Services.Publish(Of IDiagnosticsService)(Me)

    End Sub

    ' The showWindow method creates a FeatureManagerDiagnostics
    ' window and shows it.
    Public Sub ShowWindow() Implements IDiagnosticsService.ShowWindow

        If fmdWindow IsNot Nothing Then

            ' Show the FeatureManagerDiagnostics window.
            fmdWindow.Show()

            ' Activate the 
            fmdWindow.Activate()

        Else

            fmdWindow = New FeatureManagerDiagnostics()
            fmdWindow.Initialize(Manager)
            AddHandler fmdWindow.Closed, AddressOf fmdWindow_Closed
            fmdWindow.Show()

        End If

    End Sub

    Sub fmdWindow_Closed(ByVal sender As Object, ByVal e As EventArgs)

        fmdWindow = Nothing

    End Sub

End Class
// The IDiagnosticsService specifies a simple interface for showing
// a FeatureManagerDiagnostics window.
interface IDiagnosticsService 
{
    void ShowWindow();
}


...


// The DiagnosticsFeatureConnector publishes the IDiagnosticsService. 
class DiagnosticsFeatureConnector : FeatureConnector<DiagnosticsMenuProvider>,
    IDiagnosticsService 
{
    FeatureManagerDiagnostics fmdWindow;

    public DiagnosticsFeatureConnector(FeatureManager manager)
        : base(manager) 
    {
        Context.Services.Publish<IDiagnosticsService>(this);
    }

    #region IDiagnosticsService Members

    // The showWindow method creates a FeatureManagerDiagnostics
    // window and shows it.
    public void ShowWindow() 
    {
        if (fmdWindow != null) 
        {
            fmdWindow.Show();
            fmdWindow.Activate();
        }
        else 
        {
            fmdWindow = new FeatureManagerDiagnostics();
            fmdWindow.Initialize(Manager);
            fmdWindow.Closed += new EventHandler(fmdWindow_Closed); 
            fmdWindow.Show();
        }
    }

    void fmdWindow_Closed(object sender, EventArgs e)
    {
        fmdWindow = null; 
    }

    #endregion
}

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.Windows.Design.Features

FeatureManager

FeatureProvider

FeatureConnectorAttribute

Outros recursos

Como: Criar um Conector de Recursos Personalizado

Recurso provedores e conectores de recursos

Noções básicas sobre extensibilidade Designer WPF