<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://labviewwiki.org/w/index.php?action=history&amp;feed=atom&amp;title=Constructor_Node</id>
	<title>Constructor Node - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://labviewwiki.org/w/index.php?action=history&amp;feed=atom&amp;title=Constructor_Node"/>
	<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Constructor_Node&amp;action=history"/>
	<updated>2026-04-20T22:20:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Constructor_Node&amp;diff=32965&amp;oldid=prev</id>
		<title>Logmanoriginal: Add palette information</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Constructor_Node&amp;diff=32965&amp;oldid=prev"/>
		<updated>2024-08-07T16:43:08Z</updated>

		<summary type="html">&lt;p&gt;Add palette information&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:43, 7 August 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{LabVIEW Palette Object Information|type=node|requires=base|palette=Functions Palette/Connectivity/.NET{{!}}.NET|icon=Constructor Node.png}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039;&amp;#039; calls the constructor of a .NET class or struct and returns a [[.NET Refnum]] to the class instance. When placed on the [[Block Diagram]], the user must select the .NET Assembly, class, and constructor from the [[#Select .NET Framework Constructor Dialog|Select .NET Framework Constructor Dialog]]. Depending on the selected constructor, the node may provide zero or more input terminals for the constructor arguments.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039;&amp;#039; calls the constructor of a .NET class or struct and returns a [[.NET Refnum]] to the class instance. When placed on the [[Block Diagram]], the user must select the .NET Assembly, class, and constructor from the [[#Select .NET Framework Constructor Dialog|Select .NET Framework Constructor Dialog]]. Depending on the selected constructor, the node may provide zero or more input terminals for the constructor arguments.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/functions/constructor-node.html Constructor Node (LabVIEW Programming Reference Manual)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/functions/constructor-node.html Constructor Node (LabVIEW Programming Reference Manual)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Node]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Object-Oriented Programming]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Object-Oriented Programming]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Logmanoriginal</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Constructor_Node&amp;diff=32769&amp;oldid=prev</id>
		<title>Logmanoriginal: Add page</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Constructor_Node&amp;diff=32769&amp;oldid=prev"/>
		<updated>2024-07-28T18:30:43Z</updated>

		<summary type="html">&lt;p&gt;Add page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039;&amp;#039; calls the constructor of a .NET class or struct and returns a [[.NET Refnum]] to the class instance. When placed on the [[Block Diagram]], the user must select the .NET Assembly, class, and constructor from the [[#Select .NET Framework Constructor Dialog|Select .NET Framework Constructor Dialog]]. Depending on the selected constructor, the node may provide zero or more input terminals for the constructor arguments.&lt;br /&gt;
&lt;br /&gt;
Class instances created with the &amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039; must be disposed with a corresponding call to the [[Close Reference function]].&lt;br /&gt;
&lt;br /&gt;
Starting with [[LabVIEW 2024 Q3]], support for [[wikipedia:.NET|.NET Core 8.0]] was added as experimental preview feature that can be enabled through the &amp;#039;&amp;#039;Preview Features&amp;#039;&amp;#039; category in the [[Options dialog]].&lt;br /&gt;
&lt;br /&gt;
==Select .NET Framework Constructor Dialog==&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Select .NET Framework Constructor&amp;#039;&amp;#039;&amp;#039; dialog (previously &amp;#039;&amp;#039;Select .NET Constructor&amp;#039;&amp;#039;) provides access to all .NET Framework assemblies in the [[wikipedia:Global Assembly Cache|Global Assembly Cache]] and manually selected assemblies.&lt;br /&gt;
&lt;br /&gt;
It appears when placing a new &amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039; on the Block Diagram, double-clicking a &amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039;, or when selecting the &amp;#039;&amp;#039;Select .NET Framework Constructor&amp;#039;&amp;#039; shortcut menu option on a &amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==Select .NET Core Constructor Dialog==&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Select .NET Core Constructor&amp;#039;&amp;#039;&amp;#039; dialog is functionally equivalent to the &amp;#039;&amp;#039;Select .NET Framework Constructor&amp;#039;&amp;#039; dialog. However, it provides access to .NET Core assemblies installed by the .NET Runtime and manually selected assemblies.&lt;br /&gt;
&lt;br /&gt;
==Best practices==&lt;br /&gt;
* Avoid placing custom assemblies in the [[wikipedia:Global Assembly Cache|Global Assembly Cache]] unless you can ensure that the assemblies are reliably distributed to all developer machines.&lt;br /&gt;
* Place assemblies in your repository next to VIs that call the assembly, or in a relative directory. This ensures that assemblies can be loaded on different machines when checking out the source code.&lt;br /&gt;
* Do not load VIs that link to different versions or copies of the same assembly. This can result in cross-linking and broken VIs when loaded on a different machine.&lt;br /&gt;
* Do not move assemblies that are used by VIs. This can result in situations where a VI appears to be working but is broken when checked-out on a different machine.&lt;br /&gt;
* Do not change the [https://learn.microsoft.com/en-us/troubleshoot/developer/dotnet/framework/general/assembly-version-assembly-file-version#assemblyversion Assembly Version] of assemblies unless the assembly is incompatible with the previous version. The assembly version is part of the assembly name used to lookup the assembly. When the assembly version changes, all refnums must be linked to the new version.&lt;br /&gt;
* Avoid breaking changes to public interfaces of your assemblies. This can result in errors that will only be reported when re-compiling VIs.&lt;br /&gt;
* Always clear the compiled object cache when moving assemblies or introducing breaking changes. This ensures that LabVIEW recompiles all VIs and reports any failures.&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
The &amp;#039;&amp;#039;Constructor Node&amp;#039;&amp;#039; has a few additional terminals that are undocumented and should not be used in production code:&lt;br /&gt;
&lt;br /&gt;
[[File:Constructor Node Trivia (Terminals).png]]&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;reference&amp;#039;&amp;#039; (above the &amp;#039;&amp;#039;error in&amp;#039;&amp;#039; terminal): This terminal appears to accept any .NET Refnum but its use is unclear.&lt;br /&gt;
* &amp;#039;&amp;#039;void&amp;#039;&amp;#039; (middle-left terminal): This terminal is of type &amp;#039;&amp;#039;void&amp;#039;&amp;#039; and does not accept any type.&lt;br /&gt;
* &amp;#039;&amp;#039;type?&amp;#039;&amp;#039; (middle-right terminal): This terminal appears to return the data type of the chosen class but not the instance (refnum value is always zero).&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/functions/constructor-node.html Constructor Node (LabVIEW Programming Reference Manual)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Node]]&lt;br /&gt;
[[Category:Object-Oriented Programming]]&lt;/div&gt;</summary>
		<author><name>Logmanoriginal</name></author>
	</entry>
</feed>