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 خصائص السلاسل