Imported Upstream version 4.8.0.309

Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-11-10 13:04:39 +00:00
parent ee1447783b
commit 94b2861243
4912 changed files with 390737 additions and 49310 deletions

View File

@@ -60,7 +60,7 @@ namespace System.Xml.Serialization
set { memberName = value; }
}
#if NET_2_1
#if MOBILE
MemberInfo member;
// It is used only in 2.1 S.X.Serialization.dll in MS SDK.
internal MemberInfo MemberInfo {

View File

@@ -243,6 +243,33 @@ namespace System.Xml.Serialization {
}
}
static string[] allTimeFormats = new string[] {
"HH:mm:ss.fffffffzzzzzz",
"HH:mm:ss",
"HH:mm:ss.f",
"HH:mm:ss.ff",
"HH:mm:ss.fff",
"HH:mm:ss.ffff",
"HH:mm:ss.fffff",
"HH:mm:ss.ffffff",
"HH:mm:ss.fffffff",
"HH:mm:ssZ",
"HH:mm:ss.fZ",
"HH:mm:ss.ffZ",
"HH:mm:ss.fffZ",
"HH:mm:ss.ffffZ",
"HH:mm:ss.fffffZ",
"HH:mm:ss.ffffffZ",
"HH:mm:ss.fffffffZ",
"HH:mm:sszzzzzz",
"HH:mm:ss.fzzzzzz",
"HH:mm:ss.ffzzzzzz",
"HH:mm:ss.fffzzzzzz",
"HH:mm:ss.ffffzzzzzz",
"HH:mm:ss.fffffzzzzzz",
"HH:mm:ss.ffffffzzzzzz",
};
internal static object FromXmlString (TypeData type, string value)
{
if (value == null) return null;
@@ -254,7 +281,7 @@ namespace System.Xml.Serialization {
case "char": return (char)XmlConvert.ToInt32 (value);
case "dateTime": return XmlConvert.ToDateTime (value, XmlDateTimeSerializationMode.RoundtripKind);
case "date": return XmlConvert.ToDateTime (value).Date;
case "time": return DateTime.ParseExact (value, "HH:mm:ss.FFFFFFF", null);
case "time": return DateTime.ParseExact(value, allTimeFormats, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite | DateTimeStyles.NoCurrentDateDefault | DateTimeStyles.RoundtripKind);
case "decimal": return XmlConvert.ToDecimal (value);
case "double": return XmlConvert.ToDouble (value);
case "short": return XmlConvert.ToInt16 (value);

View File

@@ -126,7 +126,7 @@ namespace System.Xml.Serialization
{
get { return _mapMember.Name; }
}
#if !NET_2_1
#if !MOBILE
public string GenerateTypeName (System.CodeDom.Compiler.CodeDomProvider codeProvider)
{
string ret = codeProvider.CreateValidIdentifier (_mapMember.TypeData.FullTypeName);

View File

@@ -157,7 +157,7 @@ namespace System.Xml.Serialization {
mps.RelatedMaps = relatedMaps;
mps.Format = SerializationFormat.Literal;
Type[] extraTypes = includedTypes != null ? (Type[])includedTypes.ToArray(typeof(Type)) : null;
#if !NET_2_1
#if !MOBILE
mps.Source = new MembersSerializationSource (elementName, hasWrapperElement, members, false, true, ns, extraTypes);
if (allowPrivateTypes) mps.Source.CanBeGenerated = false;
#endif
@@ -226,7 +226,7 @@ namespace System.Xml.Serialization {
map.RelatedMaps = relatedMaps;
map.Format = SerializationFormat.Literal;
Type[] extraTypes = includedTypes != null ? (Type[]) includedTypes.ToArray (typeof (Type)) : null;
#if !NET_2_1
#if !MOBILE
map.Source = new XmlTypeSerializationSource (typeData.Type, root, attributeOverrides, defaultNamespace, extraTypes);
if (allowPrivateTypes) map.Source.CanBeGenerated = false;
#endif

View File

@@ -729,6 +729,29 @@ namespace System.Xml.Serialization
return serializable;
}
protected IXmlSerializable ReadSerializable (IXmlSerializable serializable, bool wrappedAny)
{
string name = null;
string ns = null;
if (wrappedAny) {
name = reader.LocalName;
ns = reader.NamespaceURI;
reader.Read ();
reader.MoveToContent ();
}
serializable.ReadXml (reader);
if (wrappedAny) {
while (reader.NodeType == XmlNodeType.Whitespace) reader.Skip ();
if (reader.NodeType == XmlNodeType.None) reader.Skip ();
if (reader.NodeType == XmlNodeType.EndElement && reader.LocalName == name && reader.NamespaceURI == ns) {
reader.Read ();
}
}
return serializable;
}
protected string ReadString (string value)
{
readCount++;

View File

@@ -37,7 +37,7 @@ using System.Reflection;
using System.Xml;
using System.Xml.Schema;
using System.Text;
#if !NET_2_1
#if !MOBILE
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
@@ -121,7 +121,7 @@ namespace System.Xml.Serialization
// debugging pourposes by adding the "nofallback" option.
// For example: MONO_XMLSERIALIZER_THS=0,nofallback
#if NET_2_1
#if MOBILE
string db = null;
string th = null;
generationThreshold = -1;
@@ -150,7 +150,7 @@ namespace System.Xml.Serialization
}
#endif
deleteTempFiles = (db == null || db == "no");
#if !NET_2_1 && CONFIGURATION_DEP
#if !MOBILE && CONFIGURATION_DEP
// DiagnosticsSection
ConfigurationSection table = (ConfigurationSection) ConfigurationSettings.GetConfig("system.diagnostics");
var bf = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
@@ -204,6 +204,11 @@ namespace System.Xml.Serialization
{
}
public XmlSerializer (Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location)
: this (type, overrides, extraTypes, root, defaultNamespace, location, null)
{
}
public XmlSerializer (Type type, XmlAttributeOverrides overrides)
: this (type, overrides, null, null, null)
{
@@ -579,7 +584,7 @@ namespace System.Xml.Serialization
}
}
#if !NET_2_1
#if !MOBILE
if (!typeMapping.Source.CanBeGenerated || generationThreshold == -1)
return new XmlSerializationWriterInterpreter (typeMapping);
@@ -600,7 +605,7 @@ namespace System.Xml.Serialization
XmlSerializationReader CreateReader (XmlMapping typeMapping)
{
#if !NET_2_1
#if !MOBILE
XmlSerializationReader reader;
lock (this) {
@@ -630,7 +635,7 @@ namespace System.Xml.Serialization
return new XmlSerializationReaderInterpreter (typeMapping);
}
#if NET_2_1
#if MOBILE
void CheckGeneratedTypes (XmlMapping typeMapping)
{
throw new NotImplementedException();

View File

@@ -61,6 +61,11 @@ namespace System.Xml.Serialization
}
}
public XmlSerializer CreateSerializer (Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location)
{
return CreateSerializer (type, overrides, extraTypes, root, defaultNamespace, location, null);
}
public XmlSerializer CreateSerializer (Type type, string defaultNamespace)
{
return CreateSerializer (type, null, null, null, defaultNamespace);