Aracılığıyla paylaş


CA1057: Dize URI aşırı yüklemeleri System.Uri aşırı yüklemelerini çağırır

TypeName

StringUriOverloadsCallSystemUriOverloads

CheckId

CA1057

Kategori

Microsoft.Design

Değişiklik kesiliyor

Bölünemez

Neden

Yalnızca bir dize parametresi ile değiştirilmesi tarafından farklı yöntemi aşırı bir tür bildirir bir Uri parametresi ve dize parametresi alır aşırı götüren aşırı çağırmıyor Uri parametresi.

Kural Tanımı

Aşırı dizesi yalnızca farklı olduğundan /Uri parametresi, dize bir Tekdüzen Kaynak Tanımlayıcısı (URI) temsil edilir.Dize halinde temsilini URI ayrıştırma ve hataları kodlama açıktır ve güvenlik açıklarına yol açabilecek.Uri Sınıfı, güvenli bir şekilde bu hizmetleri sağlar.Yararları saklaması için Uri dize aşırı sınıfı, çağrı Uri dize değişkeni kullanarak tekrar.

İhlalleri düzeltmek nasıl

Örneği oluşturur böylece URI dize gösterimini kullanan yöntem re-implement Uri dize değişkeni kullanarak sınıf ve ardından geçen Uri olan aşırı nesnesine Uri parametresi.

Uyarıları ne zaman

Dize parametresi bir URI'yı temsil etmiyor, bir uyarı bu kuraldan bastırmak güvenlidir.

Örnek

Aşağıdaki örnek, doğru uygulanmış dize aşırı gösterir.

Imports System

Namespace DesignLibrary

   Public Class History

      Sub AddToHistory(uriString As String)
          Dim newUri As New Uri(uriString)
          AddToHistory(newUri)
      End Sub 

      Sub AddToHistory(uriType As Uri)
      End Sub 

   End Class 

End Namespace
using System;

namespace DesignLibrary
{
   public class History
   {
      public void AddToHistory(string uriString)
      {
          Uri newUri = new Uri(uriString);
          AddToHistory(newUri);
      }

      public void AddToHistory(Uri uriType) { }
   }
}
#using <system.dll>
using namespace System;

namespace DesignLibrary
{
   public ref class History
   {
   public:
      void AddToHistory(String^ uriString)
      {
          Uri^ newUri = gcnew Uri(uriString);
          AddToHistory(newUri);
      }

      void AddToHistory(Uri^ uriType) { }
   };
}

İlgili kuralları

CA2234: Dizeler yerine System.Uri nesneleri gönderin

CA1056: URI özellikleri dizeler olmamalıdır

CA1054: URI parametreleri dizeler olmamalıdır

CA1055: URI dönüş değerleri dizeler olmamalıdır