Compartilhar via


Usar somente a API do estrutura de destino

TypeName

UseOnlyApiFromTargetedFramework

CheckId

CA1903

Category (Categoria)

Microsoft.Portability

Quebrando alterar

Quebrando - quando acionado contra a assinatura de um tipo ou membro visível externamente.

Não separáveis - quando acionado no corpo de um método.

Causa

Um tipo ou membro estiver usando um membro ou tipo que foi introduzido em um serviço empacotar que não foi incluído com o estrutura de destino do projeto.

Descrição da regra

Novos membros e tipos foram incluídos no .NET estrutura 2.0 serviço empacotar 1 e 2, o .NET estrutura 3.0 serviço empacotar 1 e 2 e .NET estrutura 3.5 serviço empacotar 1.Projetos de versões principais do .NET estrutura de destino, inadvertidamente, podem levar dependências em essas novas APIs.Para evitar esta dependência, essa regra é acionado em usos de quaisquer novos membros e tipos que não foram incluídos por padrão com a estrutura de destino do projeto.

estrutura de destino e serviço empacotar dependências

Quando está a estrutura de destino

É acionado em usos dos membros introduzidos no

.NET Framework 2,0

.NET estrutura 2.0 SP1, .NET estrutura 2.0 SP2

.NET Framework 3,0

.NET estrutura 2.0 SP1, .NET estrutura 2.0 SP2, .NET estrutura 3.0 SP1, SP2 .NET estrutura 3.0

.NET Framework 3,5

.NET Framework 3.5 SP1

Para alterar a estrutura de destino do projeto, consulte Direcionando-se a um .NET Framework Específico.

Como corrigir violações

Para remover a dependência na serviço empacotar, remova todos os usos do novo membro ou tipo.Se estiver uma dependência deliberada, eliminar o aviso ou desativar esta regra.

Quando suprimir avisos

Não eliminar um aviso essa regra se não foi especificada uma dependência deliberada service pack.Nessa situação, seu aplicativo pode falhar ao ser executado em sistemas sem isso serviço empacotar instalado.Eliminar o aviso ou desative esta regra se esta foi uma dependência deliberada.

Exemplo

O exemplo a seguir mostra uma classe que usa o tipo DateTimeOffset só está disponível no .NET 2.0 serviço empacotar 1.Este exemplo requer que o .NET estrutura 2.0 foi selecionada na lista suspensa destino estrutura propriedades do projeto.

using System;
namespace Samples
{
    public class LibraryBook
    {
        private readonly string _Title;
        private DateTimeOffset _CheckoutDate;   // Violates this rule
        public LibraryBook(string title)
        {
            _Title = title;
        }
        public string Title
        {
        get { return _Title; }
        }
        public DateTimeOffset CheckoutDate      // Violates this rule
        {
            get { return _CheckoutDate; }
            set { _CheckoutDate = value; }
        }
    }
}

O exemplo a seguir corrige a violação descrita anteriormente, substituindo os usos do tipo DateTimeOffset por tipo DateTime.

using System;
namespace Samples
{
    public class LibraryBook
    {
        private readonly string _Title;
        private DateTime _CheckoutDate;
        public LibraryBook(string title)
        {
            _Title = title;
        }
        public string Title
        {
            get { return _Title; }
        }
        public DateTime CheckoutDate
        {
            get { return _CheckoutDate; }
            set { _CheckoutDate = value; }
        }
    }
}

Consulte também

Outros recursos

Avisos de portabilidade

Direcionando-se a um .NET Framework Específico