diff --git a/Modbus.Net/src/Base.Common/BaseProtocal.cs b/Modbus.Net/src/Base.Common/BaseProtocal.cs index 3873ac5..c31b6ce 100644 --- a/Modbus.Net/src/Base.Common/BaseProtocal.cs +++ b/Modbus.Net/src/Base.Common/BaseProtocal.cs @@ -85,13 +85,16 @@ namespace Modbus.Net { if (Protocals.ContainsKey(protocalName)) protocalUnitReturn = Protocals[protocalName]; - //自动寻找存在的协议并将其加载 - var protocalUnit = - Activator.CreateInstance(type.GetTypeInfo().Assembly.GetType(protocalName)) as TProtocalUnit; - if (protocalUnit == null) - throw new InvalidCastException($"No ProtocalUnit {nameof(TProtocalUnit)} implemented"); - protocalUnit.Endian = Endian; - Register(protocalUnit); + else + { + //自动寻找存在的协议并将其加载 + var protocalUnit = + Activator.CreateInstance(type.GetTypeInfo().Assembly.GetType(protocalName)) as TProtocalUnit; + if (protocalUnit == null) + throw new InvalidCastException($"No ProtocalUnit {nameof(TProtocalUnit)} implemented"); + protocalUnit.Endian = Endian; + Register(protocalUnit); + } } return protocalUnitReturn ?? Protocals[protocalName]; }