私は自分の問題の解決策を見つけたので、それを報告して、AutoMapper を使用している他の人に役立つことを願っています。まず、間違ったオブジェクトをマッピングしようとしていました。コードをよく調べた結果、次のマルチレベル継承構成を持つクラスをマップする必要があると判断しました。
public class MessageInsert : ISerializable, ICloneable {}
public class DateTimeInsert : MessageInsert {}
public class TimeStampInsert : DateTimeInsert, ISerializable {}
public class DateStampInsert : DateTimeInsert, ISerializable {}
public class ClockInsert : DateTimeInsert, ISerializable {}
public class CalendarInsert : DateTimeInsert, ISerializable {}
public class DataInsert : MessageInsert, ISerializable {}
public class TokenInsert : DataInsert, ISerializable {}
public class VariableInsert : DataInsert, ISerializable {}
MessageInsert オブジェクトをマップし、子レベルのすべてのプロパティを新しいオブジェクトにマップする必要がありました。AutoMapper は継承マッピングを処理しますが、CreateMap ステートメントを使用して特定の方法で設定する必要があります。以下で使用した CreateMap ステートメントは、マッピングの設定方法であり、機能しているように見えました。誰かがこれらを行うためのより良い方法を見つけて、ぜひチャイムを鳴らしたい場合.
ステートメントの最初のブロックは、名前空間が関連付けられているさまざまなクラス、列挙、構造体などの名前空間マッピングを処理するために使用されました。
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.MessageSchedule, DBWebAgent.Properties.MessageSchedule>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.DashPropType, DBWebAgent.Properties.DashPropType>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.MessageType, DBWebAgent.Properties.MessageType>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.DestinationTag, DBWebAgent.Properties.DestinationTag>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.QcMessageBody, DBWebAgent.Properties.QcMessageBody>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.DataInsertThreshold, DBWebAgent.Properties.DataInsertThreshold>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.QuickCOMAlarm, DBWebAgent.Properties.QuickCOMAlarm>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.ScrollEffectType, DBWebAgent.Properties.ScrollEffectType>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.MessagePriorityType, DBWebAgent.Properties.MessagePriorityType>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.QcMessageSegment, DBWebAgent.Properties.QcMessageSegment>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.DateTimeInsert, DBWebAgent.Properties.DateTimeInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.DateStampInsert, DBWebAgent.Properties.DateStampInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.TimeStampInsert, DBWebAgent.Properties.TimeStampInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.ClockInsert, DBWebAgent.Properties.ClockInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.CalendarInsert, DBWebAgent.Properties.CalendarInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.DataInsert, DBWebAgent.Properties.DataInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.VariableInsert, DBWebAgent.Properties.VariableInsert>();
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.TokenInsert, DBWebAgent.Properties.TokenInsert>();
CreateMap ステートメントの 2 番目のセットは、クラス内の継承のすべてのレベルを処理するために定義されました。
AutoMapper.Mapper.CreateMap<ABC.QC.Properties.MessageInsert, DBWebAgent.Properties.MessageInsert>()
.Include<ABC.QC.Properties.DateTimeInsert, DBWebAgent.Properties.DateTimeInsert>()
.Include<ABC.QC.Properties.DateStampInsert, DBWebAgent.Properties.DateStampInsert>()
.Include<ABC.QC.Properties.TimeStampInsert, DBWebAgent.Properties.TimeStampInsert>()
.Include<ABC.QC.Properties.ClockInsert, DBWebAgent.Properties.ClockInsert>()
.Include<ABC.QC.Properties.CalendarInsert, DBWebAgent.Properties.CalendarInsert>()
.Include<ABC.QC.Properties.DataInsert, DBWebAgent.Properties.DataInsert>()
.Include<ABC.QC.Properties.VariableInsert, DBWebAgent.Properties.VariableInsert>()
.Include<ABC.QC.Properties.TokenInsert, DBWebAgent.Properties.TokenInsert>();