using System.Xml;
using System.Xml.Schema;
using System.Text;
-#if !TARGET_JVM && !NET_2_1
+#if !NET_2_1
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
internal class SerializerData
{
public int UsageCount;
+ public bool Generated;
public Type ReaderType;
public MethodInfo ReaderMethod;
public Type WriterType;
// debugging pourposes by adding the "nofallback" option.
// For example: MONO_XMLSERIALIZER_THS=0,nofallback
-#if TARGET_JVM || NET_2_1
+#if NET_2_1
string db = null;
string th = null;
generationThreshold = -1;
else {
generationThreshold = int.Parse (th, CultureInfo.InvariantCulture);
backgroundGeneration = (generationThreshold != 0);
- if (generationThreshold < 1) generationThreshold = 1;
}
}
#endif
}
}
-#if !NET_2_1
-
[MonoTODO]
public object Deserialize (XmlReader xmlReader, string encodingStyle, XmlDeserializationEvents events)
{
throw new NotImplementedException ();
}
-#if !TARGET_JVM && !MOBILE
+#if !MOBILE
public static Assembly GenerateSerializer (Type[] types, XmlMapping[] mappings)
{
return GenerateSerializer (types, mappings, null);
{
throw new NotImplementedException ();
}
-#endif
XmlSerializationWriter CreateWriter (XmlMapping typeMapping)
{
return new XmlSerializationReaderInterpreter (typeMapping);
}
-#if TARGET_JVM || NET_2_1
+#if NET_2_1
void CheckGeneratedTypes (XmlMapping typeMapping)
{
throw new NotImplementedException();
bool generate = false;
lock (serializerData)
{
- generate = (++serializerData.UsageCount == generationThreshold);
+ if (serializerData.UsageCount >= generationThreshold && !serializerData.Generated)
+ serializerData.Generated = generate = true;
+
+ serializerData.UsageCount++;
}
if (generate)