我正在编写一个小型库,其中我编写了一些接口,这些接口接受一个MailMessage对象,并向我返回一个类,该类具有一个抽象的send方法,用于隐藏MailMessage将如何发送的细节。我可以控制执行实际发送的类,但无法控制实现策略类。我想防止任何实现策略类更改MailMessage。我该如何使MailMessage(及其包含的集合)成为不可变的或创建其副本?我在MailMessage本身上没有看到像其他类一样的.Clone方法。我是否需要新建一个MailMessage对象并对该新MailMessage进行逐个属性设置?请注意,我主要是Java开发人员,正在帮助客户处理C#2.0代码,因此对于此类事情的C#/ .NET习语略感陌生。非常感谢您的帮助。