DISABLE_CAS_USE is required to avoid NotImplementedExceptions in CAS land.
MONO_HYBRID_XML is to preserve Mono's XmlSerializer which also allows
interpreter-based XML serialization (as opposed to run-time code generation
based XML serialization, which is not doable in iOS).
Though some Xml.Serialization classes are useful even with mono
implementation, so we partially import them (namely schema importer).
Uses big integer arithmetic to get the sequence of digits.
*/
public static void DblToRgbPrecise(double dbl, byte[] mantissa, out int exponent, out int mantissaSize) {
+ exponent = 0;
+ mantissaSize = 0;
BigInteger biNum = new BigInteger();
BigInteger biDen = new BigInteger();
BigInteger biHi = new BigInteger();
}
public ScriptClass GetScriptClass(string ns, string language, IErrorHelper errorHelper) {
+#if CONFIGURATION_DEP
CompilerInfo compilerInfo;
try {
compilerInfo = CodeDomProvider.GetCompilerInfo(language);
newScriptClass.typeDecl.TypeAttributes = TypeAttributes.Public;
scriptClasses.Add(newScriptClass);
return newScriptClass;
+#else
+ return null;
+#endif
}
//------------------------------------------------
// The World of Compile
//
internal void Compile(NavigatorInput input, XmlResolver xmlResolver, Evidence evidence) {
+#if DISABLE_CAS_USE
+ evidence = null;
+#endif
Debug.Assert(input != null);
Debug.Assert(xmlResolver != null);
// Debug.Assert(evidence != null); -- default evidence is null now
-
using System;
-using System.Configuration;
using System.Globalization;
using System.Xml;
+#if CONFIGURATION_DEP
+using System.Configuration;
+
namespace System.Xml.XmlConfiguration {
internal static class XmlConfigurationString {
internal const string XmlReaderSectionName = "xmlReader";
}
}
}
+#else
+namespace System.Xml.XmlConfiguration {
+ public sealed class XsltConfigSection {
+ internal static XmlResolver CreateDefaultResolver() {
+ return XmlNullResolver.Singleton;
+ }
+ internal static bool EnableMemberAccessForXslCompiledTransform = false;
+ internal static bool LimitXPathComplexity = true;
+ }
+ public sealed class XmlReaderSection {
+ internal static XmlResolver CreateDefaultResolver() {
+ return null;
+ }
+ internal static bool ProhibitDefaultUrlResolver = false;
+ }
+}
+#endif
using System.Collections;
using System.Collections.Specialized;
+#if !MONO_HYBRID_SYSTEM_XML
public class ImportContext {
bool shareTypes;
SchemaObjectCache cache; // cached schema top-level items
get { return Cache.Warnings; }
}
}
+#endif
internal class SchemaObjectCache {
Hashtable graph;
}
internal object Find(XmlQualifiedName name, Type type, bool checkCache) {
if (!IsCompiled) {
+#if MONO_HYBRID_SYSTEM_XML
+ Compile (null, true);
+#else
foreach (XmlSchema schema in List) {
Preprocess(schema);
}
+#endif
}
IList values = (IList)SchemaSet.Schemas(name.Namespace);
if (values == null) return null;
public XmlSecureResolver(XmlResolver resolver, string securityUrl) : this(resolver, CreateEvidenceForUrl(securityUrl)) {}
+#if DISABLE_CAS_USE
+ public XmlSecureResolver(XmlResolver resolver, Evidence evidence) : this(resolver, new PermissionSet (PermissionState.None)) {}
+#else
public XmlSecureResolver(XmlResolver resolver, Evidence evidence) : this(resolver, SecurityManager.GetStandardSandbox(evidence)) {}
+#endif
public XmlSecureResolver(XmlResolver resolver, PermissionSet permissionSet) {
this.resolver = resolver;
public static Evidence CreateEvidenceForUrl(string securityUrl) {
Evidence evidence = new Evidence();
+#if !DISABLE_CAS_USE
if (securityUrl != null && securityUrl.Length > 0) {
evidence.AddHostEvidence(new Url(securityUrl));
evidence.AddHostEvidence(Zone.CreateFromUrl(securityUrl));
}
}
}
+#endif
return evidence;
}
// </copyright>
//------------------------------------------------------------------------------
-
+#if CONFIGURATION_DEP
namespace System.Configuration {
using System.Collections.Specialized;
}
}
}
+#endif