Skip to content

Commit 97c8999

Browse files
committed
NH-2958 - Move mappingDocumentSerializer field from Configuration to NamedXmlDocument.
This should delay creation of XmlSerializer assembly and reduce start time of when use only by code mappings.
1 parent c5bf8e1 commit 97c8999

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

src/NHibernate/Cfg/Configuration.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,8 @@ public class Configuration : ISerializable
7979

8080
private static readonly IInternalLogger log = LoggerProvider.LoggerFor(typeof(Configuration));
8181

82-
protected internal SettingsFactory settingsFactory;
83-
84-
private static readonly XmlSerializer mappingDocumentSerializer = new XmlSerializer(typeof(HbmMapping));
85-
82+
protected internal SettingsFactory settingsFactory;
83+
8684
#region ISerializable Members
8785
public Configuration(SerializationInfo info, StreamingContext context)
8886
{
@@ -1806,7 +1804,7 @@ public NamedXmlDocument LoadMappingDocument(XmlReader hbmReader, string name)
18061804
{
18071805
var hbmDocument = new XmlDocument();
18081806
hbmDocument.Load(reader);
1809-
return new NamedXmlDocument(name, hbmDocument, mappingDocumentSerializer);
1807+
return new NamedXmlDocument(name, hbmDocument);
18101808
}
18111809
catch (MappingException)
18121810
{
@@ -1893,8 +1891,8 @@ private XmlSchemas Schemas
18931891
{
18941892
get { return schemas = schemas ?? new XmlSchemas(); }
18951893
set { schemas = value; }
1896-
}
1897-
1894+
}
1895+
18981896
/// <summary>
18991897
/// Set or clear listener for a given <see cref="ListenerType"/>.
19001898
/// </summary>

src/NHibernate/Cfg/NamedXmlDocument.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@ namespace NHibernate.Cfg
88
{
99
public class NamedXmlDocument
1010
{
11+
private static readonly XmlSerializer mappingDocumentSerializer = new XmlSerializer(typeof (HbmMapping));
1112
private readonly string name;
1213
private readonly HbmMapping document;
1314

14-
public NamedXmlDocument(string name, XmlDocument document, XmlSerializer mappingDocumentSerializer)
15+
static NamedXmlDocument() { }
16+
17+
public NamedXmlDocument(string name, XmlDocument document)
18+
: this(name, document, mappingDocumentSerializer)
19+
{
20+
}
21+
22+
public NamedXmlDocument(string name, XmlDocument document, XmlSerializer serializer)
1523
{
1624
if (document == null)
1725
{
@@ -24,7 +32,7 @@ public NamedXmlDocument(string name, XmlDocument document, XmlSerializer mapping
2432
}
2533
using (var reader = new StringReader(document.DocumentElement.OuterXml))
2634
{
27-
this.document = (HbmMapping)mappingDocumentSerializer.Deserialize(reader);
35+
this.document = (HbmMapping)serializer.Deserialize(reader);
2836
}
2937
}
3038

0 commit comments

Comments
 (0)