مشاركة عبر


CA1057: String URI overloads call System.Uri overloads

TypeName

stringUriOverloadsCallSystemUriOverloads

CheckId

ca1057

Category

Microsoft.تصميم

تعطيل تغيير

غير فاصلة

السبب

تعريف نوع التحميلات الزائدة الطريقة التي تختلف فقط باستبدال معلمة سلسلة مع System.Uriالمعلمة، و التحميل الزائد الذي يأخذ المعلمة سلسلة لن يقوم باستدعاء التحميل الزائد الذي تستغرقه Uriالمعلمة.

وصف القاعدة

التحميلات الزائدة يختلفان فقط السلسلة/ Uriمعلمة، يتم افتراض السلسلة إلى تمثل هو معرّف موارد منتظم (URI). تمثيل سلسلة URI هو عرضه لتحليل الأخطاء، والترميز ويمكن أن يؤدي إلى مشاكل عدم حصانة الأمان. Uriتوفر الفئة هذه الخدمات في اﻷمن و الأمن الطريقة. إلى reap الفوائد Uriفئة، يجب استدعاء التحميل الزائد لسلسلة Uriزيادة التحميل باستخدام وسيطة سلسلة.

كيف إلى الإصلاح انتهاكات

re-implement الطريقة التي يستخدمها تمثيل سلسلة من URI حيث يقوم بإنشاء مثيل من Uriفئة باستخدام وسيطة السلسلة، و ثم يقوم بتمرير Uriالكائن إلى التحميل الزائد له Uriمعلمة.

عند إلى منع التحذيرات

هو آمن لمنع ظهور تحذير من القيم بالموضع هو قاعدة إذا كانت معلمة سلسلة لا تمثل URI.

مثال

يظهر المثال التالي التحميل الزائد لسلسلة مطبقة بشكل صحيح.

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) { }
   };
}

القواعد ذات الصلة

ca2234: تمرير الكائنات النظام.Uri بدلاً من السلاسل

ca1056: لا يجب أن يكون URI خصائص السلاسل

CA1054: URI parameters should not be strings

ca1055: إرجاع URI لا يجب أن تكون قيم سلاسل