C# 禁用框架类

C# 禁用框架类,c#,asp.net,mongodb,C#,Asp.net,Mongodb,我希望通过.Net框架禁用某些部分,或者至少修改System.Net.Mail.MailMessage中的MailMessage类。原因是我在email类中重载了它,以提供一些额外的功能。然后将该类插入MongoDB数据库,然后以列表格式检索。代码如下所示: public List<Email> GetAllEmails() { //! A try statement performing the logic of the function

我希望通过.Net框架禁用某些部分,或者至少修改
System.Net.Mail.MailMessage
中的
MailMessage
类。原因是我在email类中重载了它,以提供一些额外的功能。然后将该类插入MongoDB数据库,然后以
列表
格式检索。代码如下所示:

  public List<Email> GetAllEmails()
    {
        //! A try statement performing the logic of the function
        /*! We're creating a MongoDB collection of type EmailMessage named collection and then returning that collection
         */
        try
        {
            MongoCollection<Email> collection = GetEmailsCollection();
            return collection.FindAll().ToList<Email>();
        }
当我运行程序时,我在以下行中遇到异常:

MongoDB.Driver.dll中发生“System.IO.FileFormatException”类型的异常,但未在用户代码中处理

其他信息:反序列化类System.Net.Mail.MailMessage的HeadersEncoding属性时出错:实例为只读


是否有任何方法可以更改System.Net.Mail.MailMessage中HeadersEncoding的属性,或者以任何其他方式存储和检索类电子邮件?

解决方案:不要尝试使用
MailMessage
。它不支持序列化,因此无法将其实例保存在文件或数据库中


编写自己的
Mail
对象实现,其中包含实际要从数据库保存/加载的特定属性,然后提供一个将其作为参数的方法,并从
System.Net.Mail.MailMessage
内部调用标准函数来发送邮件。

解决方案:不要尝试使用
MailMessage
。它不支持序列化,因此无法将其实例保存在文件或数据库中


编写自己的
Mail
对象实现,其中包含实际要从数据库保存/加载的特定属性,然后提供一个将其作为参数的方法,并从
System.Net.Mail.MailMessage
内部调用标准函数来发送邮件。

解决方案:不要尝试使用
MailMessage
。它不支持序列化,因此无法将其实例保存在文件或数据库中


编写自己的
Mail
对象实现,其中包含实际要从数据库保存/加载的特定属性,然后提供一个将其作为参数的方法,并从
System.Net.Mail.MailMessage
内部调用标准函数来发送邮件。

解决方案:不要尝试使用
MailMessage
。它不支持序列化,因此无法将其实例保存在文件或数据库中



编写自己的
Mail
对象实现,其中包含实际要从数据库保存/加载的特定属性,然后提供一个方法,将其作为参数,并从
System.Net.Mail.MailMessage
内部调用标准函数来发送邮件。

您所指的
Email
类是什么?你好,Patrick。作为.NET Framework一部分的MailMessage类。我将对我的问题进行编辑,使其更加清晰。那么什么是
列表
?它如何从
MailMessage
转换为
MailMessage
?只需使用您自己的另一个类。
MailMessage
不会序列化/反序列化。不要试图破坏.NET Framework,只需将数据存储在您自己的自定义对象中,并使用内置的邮件发送对象发送邮件即可。您指的是什么
Email
类?您好Patrick。作为.NET Framework一部分的MailMessage类。我将对我的问题进行编辑,使其更加清晰。那么什么是
列表
?它如何从
MailMessage
转换为
MailMessage
?只需使用您自己的另一个类。
MailMessage
不会序列化/反序列化。不要试图破坏.NET Framework,只需将数据存储在您自己的自定义对象中,并使用内置的邮件发送对象发送邮件即可。您指的是什么
Email
类?您好Patrick。作为.NET Framework一部分的MailMessage类。我将对我的问题进行编辑,使其更加清晰。那么什么是
列表
?它如何从
MailMessage
转换为
MailMessage
?只需使用您自己的另一个类。
MailMessage
不会序列化/反序列化。不要试图破坏.NET Framework,只需将数据存储在您自己的自定义对象中,并使用内置的邮件发送对象发送邮件即可。您指的是什么
Email
类?您好Patrick。作为.NET Framework一部分的MailMessage类。我将对我的问题进行编辑,使其更加清晰。那么什么是
列表
?它如何从
MailMessage
转换为
MailMessage
?只需使用您自己的另一个类。
MailMessage
不会序列化/反序列化。不要试图破坏.NET Framework,只需将数据存储在您自己的自定义对象中,并使用内置的邮件发送对象发送邮件即可。ken2k在David之前首先进入了该领域。将其标记为正确和正确。谢谢大家ken2k比David先到了。将其标记为正确和正确。谢谢大家ken2k比David先到了。将其标记为正确和正确。谢谢大家ken2k比David先到了。将其标记为正确和正确。谢谢大家。
public class Email : MailMessage
{
    private DateTime date;

    public Email (MailAddress from, MailAddress to)
    {
        this.From = from;
        this.To.Add(to);
    }
    public Email(string from, string to)
    {
        MailAddress addressFrom = new MailAddress(from);
        this.From = addressFrom;

        this.To.Add(to);
    }
    public Email(string from, string to, string subject, string body)
    {
        MailAddress addressFrom = new MailAddress(from);
        this.From = addressFrom;

        this.To.Add(to);

        this.Subject = subject;

        this.Body = body;
    }
    public Email()
    {

    }

    [BsonId(IdGenerator = typeof(CombGuidGenerator))]
    public Guid Id
    {
        get;
        set;
    }