Table of Contents

Class XFactory

Namespace
Hi.Common.XmlUtils
Assembly
HiGeom.dll

Factory class for generating objects from XML elements using registered generator functions.

public class XFactory
Inheritance
XFactory
Inherited Members
Extension Methods

Remarks

Generator functions must be added to Regs to enable the factory to create objects from XML.

Constructors

XFactory()

Initializes a new instance of the XFactory class.

public XFactory()

Fields

Default

Gets the global default instance of XFactory.

public static XFactory Default

Field Value

XFactory

Properties

Regs

Gets or sets the dictionary mapping XML element names to generator functions with relative file path.

public Dictionary<string, XFactory.GenByXElementDelegate> Regs { get; set; }

Property Value

Dictionary<string, XFactory.GenByXElementDelegate>

Methods

GenByChild<T>(XElement, string, SetFileDelegate, GenMode, params object[])

Generates an object of type T from a child element of the provided XML element.

public T GenByChild<T>(XElement src, string baseDirectory, SetFileDelegate setFileAction, GenMode genMode, params object[] res) where T : class

Parameters

src XElement

The parent XML element containing the child to process

baseDirectory string

The base directory for resolving paths

setFileAction SetFileDelegate

Action to execute when setting the file path

genMode GenMode

The generation mode to use

res object[]

Additional parameters for generation

Returns

T

The generated object of type T, or null if generation fails

Type Parameters

T

The type of object to generate

GenByFile<T>(string, string, GenMode, params object[])

Generates an object of type T from an XML file.

public T GenByFile<T>(string baseDirectory, string relFile, GenMode genMode, params object[] res) where T : class

Parameters

baseDirectory string

The base directory for resolving paths

relFile string

The relative file path to the XML file

genMode GenMode

The generation mode to use

res object[]

Additional parameters for generation

Returns

T

The generated object of type T, or null if generation fails

Type Parameters

T

The type of object to generate

GenXmlFileSourceByChild<T>(XElement, string, GenMode, params object[])

Generates an XML source and file object of type T from the first child element of the provided XML element.

public XmlSourceAndFile<T> GenXmlFileSourceByChild<T>(XElement src, string baseDirectory, GenMode genMode, params object[] res) where T : class, IMakeXmlSource

Parameters

src XElement

The parent XML element containing the child to process

baseDirectory string

The base directory for resolving paths

genMode GenMode

The generation mode to use

res object[]

Additional parameters for generation

Returns

XmlSourceAndFile<T>

An XmlSourceAndFile object containing the generated object and its file path

Type Parameters

T

The type of object to generate, must implement IMakeXmlSource

GenXmlFileSourceByFile<T>(string, string, GenMode, params object[])

Generates an XML source and file object of type T from an XML file.

public XmlSourceAndFile<T> GenXmlFileSourceByFile<T>(string baseDirectory, string relFile, GenMode genMode, params object[] res) where T : class, IMakeXmlSource

Parameters

baseDirectory string

The base directory for resolving paths

relFile string

The relative file path to the XML file

genMode GenMode

The generation mode to use

res object[]

Additional parameters for generation

Returns

XmlSourceAndFile<T>

An XmlSourceAndFile object containing the generated object and its file path

Type Parameters

T

The type of object to generate, must implement IMakeXmlSource

GenXmlSourceAndFile<T>(XElement, string, SetFileDelegate, GenMode, params object[])

Generates an XML source and file object of type T from an XML element.

public XmlSourceAndFile<T> GenXmlSourceAndFile<T>(XElement src, string baseDirectory, SetFileDelegate setFileAction, GenMode genMode, params object[] res) where T : class, IMakeXmlSource

Parameters

src XElement

The source XML element

baseDirectory string

The base directory for resolving paths

setFileAction SetFileDelegate

Action to execute when setting the file path

genMode GenMode

The generation mode to use

res object[]

Additional parameters for generation

Returns

XmlSourceAndFile<T>

An XmlSourceAndFile object containing the generated object and its file path

Type Parameters

T

The type of object to generate, must implement IMakeXmlSource

Gen<T>(XElement, string, SetFileDelegate, GenMode, params object[])

Generates an object of type T from an XML element with specified generation mode.

public T Gen<T>(XElement src, string baseDirectory, SetFileDelegate setFileAction, GenMode mode, params object[] res) where T : class

Parameters

src XElement

The source XML element

baseDirectory string

The base directory for resolving paths

setFileAction SetFileDelegate

Action to execute when setting the file path

mode GenMode

The generation mode to use

res object[]

Additional parameters for generation

Returns

T

The generated object of type T, or null if generation fails

Type Parameters

T

The type of object to generate