Skip to content

Commit b132481

Browse files
committed
Move HttpUtility from System.Web.Services to System.Web
This is a followup to my previous PR where I moved HttpUtility from System to System.Web. What we found in il2cpp testing is that HttpUtility was also in System.Web.Services. This PR removes the duplicate classes from System.Web.Services. However there UrlEncodedParameterWriter inside System.Web.Services needs a UrlEncode method. To solve this dependency this commits follows the code from corefx and uses an existing helper class within. Bringing in Scalars.cs to accomplish this.
1 parent d55ce55 commit b132481

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlEncodedParameterWriter.cs

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,27 @@ protected void Encode (TextWriter writer, object[] values)
7070
}
7171

7272
protected void Encode (TextWriter writer, string name, object value)
73+
{
74+
writer.Write (UrlEncode (name));
75+
writer.Write ("=");
76+
writer.Write (UrlEncode (ObjToString (value)));
77+
}
78+
79+
private string UrlEncode (string value)
7380
{
7481
if (requestEncoding != null)
7582
{
76-
writer.Write (HttpUtility.UrlEncode (name, requestEncoding));
77-
writer.Write ("=");
78-
writer.Write (HttpUtility.UrlEncode (ObjToString (value), requestEncoding));
79-
}
80-
else
81-
{
82-
writer.Write (HttpUtility.UrlEncode (name));
83-
writer.Write ("=");
84-
writer.Write (HttpUtility.UrlEncode (ObjToString (value)));
83+
#if UNITY_AOT && FULL_AOT_RUNTIME
84+
return UrlEncoder.UrlEscapeString (value, requestEncoding);
85+
#else
86+
return HttpUtility.UrlEncode (value, requestEncoding);
87+
#endif
8588
}
86-
89+
#if UNITY_AOT && FULL_AOT_RUNTIME
90+
return UrlEncoder.UrlEscapeStringUnicode (value);
91+
#else
92+
return HttpUtility.UrlEncode (value);
93+
#endif
8794
}
8895

8996
public override object GetInitializer (LogicalMethodInfo methodInfo)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
../System.Web/System.Web.Util/Helpers.cs
2+
../System.Web/System.Web.Util/HttpEncoder.cs
3+
../System.Web/System.Web/HttpUtility.cs
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
#include mobile_System.Web.Services.dll.sources
2+
ReferenceSources/Res.cs
3+
../referencesource/System.Web.Services/System/Web/Services/Protocols/Scalars.cs

0 commit comments

Comments
 (0)