2using System.Collections.Generic;
3using System.Xml.Serialization;
12[XmlType(TypeName =
"solverDiscoveryOptions")]
15 private readonly List<string> _adapterSearchDirectories =
18 private readonly List<string> _solverSearchDirectories =
56 [XmlAttribute(
"searchApplicationDirectory")]
67 [XmlAttribute(
"searchPluginSubdirectory")]
77 [XmlElement(
"pluginSubdirectoryName")]
88 [XmlAttribute(
"searchEnvironmentVariables")]
99 [XmlAttribute(
"searchSystemPath")]
110 [XmlAttribute(
"searchCommonInstallationDirectories")]
121 [XmlAttribute(
"recursiveAdapterSearch")]
132 [XmlAttribute(
"validateLicenses")]
143 [XmlArray(
"adapterSearchDirectories")]
144 [XmlArrayItem(
"directory")]
146 _adapterSearchDirectories;
152 [XmlArray(
"solverSearchDirectories")]
153 [XmlArrayItem(
"directory")]
155 _solverSearchDirectories;
166 string.IsNullOrWhiteSpace(
169 throw new InvalidOperationException(
170 "A plugin subdirectory name is required when " +
171 "plugin-subdirectory discovery is enabled.");
174 ValidateDirectoryCollection(
175 _adapterSearchDirectories,
178 ValidateDirectoryCollection(
179 _solverSearchDirectories,
183 private static void ValidateDirectoryCollection(
184 IEnumerable<string> directories,
185 string collectionName)
191 if (
string.IsNullOrWhiteSpace(
194 throw new InvalidOperationException(
195 $
"The {collectionName} directory collection " +
196 "cannot contain an empty value.");
List< string > SolverSearchDirectories
Gets additional directories searched for native solver installations, libraries, and executables.
string PluginSubdirectoryName
Gets or sets the plugin subdirectory name.
bool SearchApplicationDirectory
Gets or sets whether the application directory is searched for solver adapter assemblies.
bool SearchEnvironmentVariables
Gets or sets whether known solver environment variables are inspected.
bool SearchCommonInstallationDirectories
Gets or sets whether common installation directories are inspected.
List< string > AdapterSearchDirectories
Gets additional directories searched for solver adapter assemblies.
SolverDiscoveryOptions()
Initializes solver-discovery options with recommended defaults.
bool RecursiveAdapterSearch
Gets or sets whether adapter search directories are scanned recursively.
bool SearchSystemPath
Gets or sets whether directories listed in the operating system PATH are inspected.
bool SearchPluginSubdirectory
Gets or sets whether a plugin subdirectory of the application directory is searched.
bool ValidateLicenses
Gets or sets whether solver-license availability is checked during discovery.
void EnsureValid()
Validates the solver-discovery options.