//public abstract void SetCustomInfoFields<T>(T obj, ref DeviceInfo info); probably no point in making this generic public abstract void SetCustomInfoFields(Assembly assem, object obj, ref DeviceInfo info);
public override void SetCustomInfoFields(Assembly assem, object obj, ref DeviceInfo info) { info.length = ((IConstructDevice)assem).Length; info.width = ((IConstructDevice)assem).Width; }