update XML IO pattern.
This commit is contained in:
@@ -87,6 +87,10 @@
|
||||
<article data-uid="">
|
||||
<h1 id="release-note">Release Note</h1>
|
||||
|
||||
<h2 id="hinc-packages-version-31172">HiNc Packages Version 3.1.172</h2>
|
||||
<ul>
|
||||
<li>Replace implicit XFactory registration (private <code>static <ClassName>()</code> constructors + <code>_ = X.XName</code> wake-up touches) with explicit <code>public static void Reg(XFactory factory = null)</code> methods across ~270 classes. <a class="xref" href="../api/Hi.Common.XmlUtils.XFactory.html">XFactory</a> becomes an instance class with a process-wide <code>Default</code> singleton; <code>Generators</code> is renamed from <code>Regs</code> and now an instance property; the delegate type is renamed <code>XGeneratorDelegate</code> from <code>GenByXElementDelegate</code>. Composite types chain <code>X.Reg(factory)</code> on dependents in place of the old wake-up touches; multi-name (legacy alias) registrations keep the current XName first and group aliases under a <code>//legacy aliases</code> comment. Entry points (web service, win-desktop, test fixtures) <strong>must call <a class="xref" href="../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_Reg_">Reg</a> once at startup before any project XML is deserialized</strong> — registration no longer happens by accident when the type is first touched. See <a href="../fundamentals/common/xml-io.html">XML IO</a>.</li>
|
||||
</ul>
|
||||
<h2 id="hinc-packages-version-31171">HiNc Packages Version 3.1.171</h2>
|
||||
<ul>
|
||||
<li><strong>Rename <code>RuntimeApi</code> → <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html">SessionShell</a></strong> (the runtime entry point exposed to scripting); <code>IShellCommand</code> → <code>ISessionCommand</code> and <code>RuntimeController</code> → <code>SessionShellController</code>; the <code>Hi.ShellCommands</code> namespace moves to <code>Hi.SessionCommands</code>, and every command implementer's <code>Run()</code> parameter renames <code>scriptApi</code> → <code>sessionShell</code></li>
|
||||
|
||||
Reference in New Issue
Block a user