【发布时间】:2011-07-10 08:20:56
【问题描述】:
我正在编写一个小型库,其中我正在编写一些接口,这些接口接受一个 MailMessage 对象并使用一个发送方法将一个类返回给我,该方法抽象出 MailMessage 的发送方式。我可以控制将执行实际发送的类,但我无法控制实施策略类。我想防止任何实施策略类更改 MailMessage。如何使 MailMessage(及其包含的集合)不可变或创建它的克隆?我没有像在其他类上那样在 MailMessage 本身上看到 .Clone 方法。我是否必须新建一个新的 MailMessage 对象并对该新的 MailMessage 进行逐个属性的设置?
请注意,我主要是 Java 人员,并且正在帮助客户编写 C# 2.0 代码,因此对于此类事情,我对 C# / .NET 习语有点不熟悉。任何帮助表示赞赏。
【问题讨论】:
-
可以序列化和反序列化对象吗?
-
System.Net.Mail.MailMessage 不能直接序列化,您需要实现 IXmlSerializable 接口。
标签: c# .net clone immutability system.net.mail