Table of Contents

Class ConfiguredEmulatableDeviceTypeResolver

Namespace
Acuit.Pinpoint.IO
Assembly
Acuit.Pinpoint.IO.Abstractions.dll

A concrete device type resolver for configured device types that uses a single concrete type, but that can optionally be emulated via a different concrete type if the Type setting value is "Emulated".

public class ConfiguredEmulatableDeviceTypeResolver : ConfiguredDeviceTypeResolverBase, IConfiguredDeviceTypeResolver
Inheritance
ConfiguredEmulatableDeviceTypeResolver
Implements
Inherited Members

Constructors

ConfiguredEmulatableDeviceTypeResolver(Type, Type)

Initializes a new instance of the ConfiguredEmulatableDeviceTypeResolver class.

public ConfiguredEmulatableDeviceTypeResolver(Type deviceType, Type emulatedDeviceType)

Parameters

deviceType Type

The normal device type, which will be used for devices with no Type setting value.

emulatedDeviceType Type

The emulated device type, which will be used for devices with a Type setting of "Emulated".

Exceptions

ArgumentNullException

deviceType is null.

ArgumentNullException

emulatedDeviceType is null.

Methods

ResolveType(Type, IConfigurationSection, string)

Determines the concrete type to use for a configured device.

public override Type ResolveType(Type baseDeviceType, IConfigurationSection configurationSection, string typeValue)

Parameters

baseDeviceType Type

The base Type for the registered device type.

configurationSection IConfigurationSection

The optional configuration section containing settings for this device. This will be null for device type registrations that do not use configuration settings.

typeValue string

The Type setting value. This will be null if the setting does not exist.

Returns

Type

The concrete type to use.

Remarks

The default implementation throws an InvalidOperationException with a 'The Type setting "typeValue" is invalid' message, so in overrides, if the type resolution fails, they can simply call the base class to cause an appropriate exception to be thrown.

Exceptions

ArgumentNullException

baseDeviceType is null.

InvalidOperationException

The type could not be determined.