Partilhar via


Tipos migradas do WPF para System.Xaml

Em .NET Framework versão 3.5 e .NET Framework versão 3.0, ambos Windows Presentation Foundation (WPF) e Windows Workflow Foundation incluído uma implementação de linguagem XAML. Muitos dos tipos públicos que forneceu a extensibilidade para a implementação do WPF XAML existiam nos assemblies do WindowsBase PresentationCore e PresentationFramework. Da mesma forma, o público tipos que forneceu a extensibilidade para Windows Workflow Foundation XAML existia no assembly System.Workflow.ComponentModel. No .NET Framework versão 4, alguns dos tipos relacionados em XAML são migrados para o assembly System.Xaml. Um comum.A implementação de serviços de linguagem XAML do NET Framework permite que muitos cenários de extensibilidade XAML que foram originalmente definidos pela implementação de uma estrutura específica XAML, mas que agora fazem parte do geral .NET Framework 4 suporte de linguagem XAML. Este tópico lista os tipos que são migrados e discute as questões relacionadas à migração.

Este tópico contém as seguintes seções.

  • Namespaces e assemblies
  • MarkupExtension
  • Classes de serviço de suporte de MarkupExtension
  • Recursos de linguagem XAML
  • Classes de suporte e ValueSerializer
  • Atributos de XAML
  • Classes de diversos
  • Relacionados a XAML Classes com nomes compartilhados que existem no WPF e System.Xaml
  • Tópicos relacionados

Namespaces e assemblies

Em .NET Framework 3.5 e .NET Framework 3.0, os tipos de WPF é implementado para dar suporte a XAML foram em geral, o System.Windows.Markup namespace. A maioria desses tipos foram no assembly WindowsBase.

Em .NET Framework 4, há um novo System.Xaml espaço para nome e um novo conjunto de System.Xaml. Agora, muitos dos tipos que foram originalmente implementados para WPF XAML são fornecidos como pontos de extensibilidade ou serviços para qualquer implementação de XAML. Como parte de disponibilizá-los para cenários mais gerais, os tipos são o tipo-encaminhado do seu assembly do WPF original para o assembly System.Xaml. Isso permite cenários de extensibilidade do XAML sem ter de incluir os assemblies de outras estruturas (como, por exemplo, WPF e Windows Workflow Foundation).

Para tipos migrados, a maioria dos tipos permanece no System.Windows.Markup namespace. Isso foi parcialmente evitar a interrupção de mapeamentos de namespace CLR em implementações existentes em uma base por arquivo. Como resultado, o System.Windows.Markup namespace no .NET Framework 4 contém uma mistura de tipos gerais de suporte de linguagem XAML (a partir do assembly ' System.Xaml ') e tipos que são específicos para a implementação do WPF XAML (do WindowsBase e outros assemblies do WPF). Qualquer tipo que foi migrado para System.Xaml, mas existiam anteriormente em um assembly do WPF, tem o suporte ao encaminhamento de tipo na versão 4 do assembly do WPF.

Tipos de suporte do fluxo de trabalho XAML

Windows Workflow Foundationtambém fornecido XAML oferecem suporte a tipos e, em muitos casos esses tinham nomes curtos idênticos em um equivalente do WPF. A seguir está uma lista de Windows Workflow Foundation XAML oferecem suporte a tipos:

Esses tipos ainda existem de suporte a Windows Workflow Foundation assemblies para .NET Framework 4 e ainda pode ser usado para determinada Windows Workflow Foundation aplicativos; Entretanto, eles não devem ser referenciados por aplicativos ou estruturas que não usam Windows Workflow Foundation.

MarkupExtension

No .NET Framework 3.5 e .NET Framework 3.0, o MarkupExtension foi de classe para WPF no assembly WindowsBase. Uma classe paralela para Windows Workflow Foundation, MarkupExtension, que existiam no assembly System.Workflow.ComponentModel. No .NET Framework 4, o MarkupExtension classe é migrado para o assembly System.Xaml. No .NET Framework 4, MarkupExtension destina-se a qualquer cenário de extensibilidade XAML que usa.NET Framework XAML Services, não apenas para aqueles que se baseiam em estruturas específicas. Quando possível, estruturas específicas ou na estrutura do código do usuário também deve construir na MarkupExtension a classe de extensão XAML.

Classes de serviço de suporte de MarkupExtension

.NET Framework 3.5e .NET Framework 3.0 para WPF fornecido vários serviços que estavam disponíveis para MarkupExtension implementadores e TypeConverter implementações para dar suporte ao uso de tipo ou propriedade em XAML. Esses serviços são os seguintes:

Observação

Outro serviço de .NET Framework 3.5 que está relacionado às extensões de marcação é o IReceiveMarkupExtension interface. IReceiveMarkupExtension não foi migrado e está marcado como [Obsolete] para .NET Framework 4.Os cenários usados anteriormente IReceiveMarkupExtension em vez disso, deve usar XamlSetMarkupExtensionAttribute atribuído retornos de chamada.AcceptedMarkupExtensionExpressionTypeAttributetambém está marcado como [Obsolete].

Recursos de linguagem XAML

Diversos recursos da linguagem XAML e componentes para WPF existiam anteriormente no assembly PresentationFramework. Estas foram implementadas como um MarkupExtension subclasse para expor os usos da extensão de marcação na marcação XAML. Em .NET Framework 4, esses existem no assembly System.Xaml para que os projetos que não incluem os assemblies do WPF podem usar esses recursos de nível de linguagem XAML. WPF usa essas implementações mesmas para .NET Framework 4 aplicativos. Como com outros casos listados neste tópico, os tipos de suporte continuam existindo no System.Windows.Markup o namespace para evitar a interrupção referências anteriores.

A tabela a seguir contém uma lista das classes de suporte de recurso XAML que são definidos no System.Xaml.

Recurso de linguagem XAML

Usage

ArrayExtension

<x:Array ...>

NullExtension

{x:Null}

StaticExtension

{x:Static ...}

TypeExtension

{x:Type ...}

Embora System.Xaml pode não ter suporte específico de classes, a lógica geral para o processamento de recursos de linguagem para a linguagem XAML agora reside em System.Xaml com leitores XAML implementados e gravadores XAML. Por exemplo, x:TypeArguments é um atributo que é processado por leitores XAML e gravadores XAML de implementações de System.Xaml; Ele pode ser observado no fluxo de nó de XAML, tem tratamento no contexto de esquema XAML (baseado em CLR) padrão, tem uma representação do sistema de tipos XAML e assim por diante. Como resultado, a documentação de referência para todos os recursos de nível de linguagem XAML é um subtópico de Serviços XAML e a área geral da.Conjunto de documentação do NET Framework, em vez de ser parte da documentação do WPF é definido como um subtópico de WPF Fundamentals (como ainda é o caso em conjuntos de documentação 3.5).

Classes de suporte e ValueSerializer

O ValueSerializer classe oferece suporte à conversão de tipo para uma seqüência de caracteres, principalmente para os casos de serialização de XAML que a serialização pode exigir vários modos ou nós de saída. Em .NET Framework 3.5 e .NET Framework 3.0, o ValueSerializer para WPF foi no assembly WindowsBase. No .NET Framework 4, o ValueSerializer classe está em System.Xaml e destina-se a qualquer cenário de extensibilidade do XAML, não apenas para aqueles que criar no WPF. IValueSerializerContext (um serviço de suporte) e DateTimeValueSerializer (uma subclasse específica) também sejam migrados para System.Xaml.

Atributos de XAML

WPF XAML incluídos vários atributos que podem ser aplicados para tipos CLR para indicar algo sobre o seu comportamento XAML. A seguir está uma lista dos atributos que existiam em assemblies do WPF em .NET Framework 3.5 e .NET Framework 3.0. Esses atributos são migrados para System.Xaml na .NET Framework 4.

Classes de diversos

O IComponentConnector interface existia no WindowsBase na .NET Framework 3.5 e .NET Framework 3.0, mas existe no System.Xaml em .NET Framework 4. IComponentConnector é destinada principalmente para ferramentas de suporte e compiladores de marcação XAML.

O INameScope interface existia no WindowsBase na .NET Framework 3.5 e .NET Framework 3.0, mas existe no System.Xaml em .NET Framework 4. INameScope define as operações básicas para um namescope XAML.

Relacionados a XAML Classes com nomes compartilhados que existem no WPF e System.Xaml

As seguintes classes consta os assemblies do WPF e o assembly em System.Xaml a .NET Framework 4:

XamlReader

XamlWriter

XamlParseException

A implementação do WPF é encontrada no System.Windows.Markup namespace e o assembly de PresentationFramework. A implementação de System.Xaml é encontrada no System.Xaml namespace. Se você estiver usando tipos de WPF ou a derivação de tipos do WPF, você geralmente deve utilizar as implementações do WPF de XamlReader e XamlWriter em vez de implementações de System.Xaml. Para obter mais informações, consulte comentários em System.Windows.Markup.XamlReader e System.Windows.Markup.XamlWriter.

Se você estiver incluindo referências a assemblies do WPF e o System.Xaml e também estiver usando include instruções para ambos os System.Windows.Markup e System.Xaml namespaces, talvez você precise qualificar totalmente as chamadas para essas APIs para resolver os tipos sem ambigüidade.

Consulte também

Conceitos

Serviços XAML