/// <summary> /// Initializes a new instance of the <see cref="MailKit.Net.Imap.ImapFolder"/> class. /// </summary> /// <remarks> /// <para>Creates a new <see cref="ImapFolder"/>.</para> /// <para>If you subclass <see cref="ImapFolder"/>, you will also need to subclass /// <see cref="ImapClient"/> and override the /// <see cref="ImapClient.CreateImapFolder(ImapFolderConstructorArgs)"/> /// method in order to return a new instance of your ImapFolder subclass.</para> /// </remarks> /// <param name="args">The constructor arguments.</param> /// <exception cref="System.ArgumentNullException"> /// <paramref name="args"/> is <c>null</c>. /// </exception> public ImapFolder (ImapFolderConstructorArgs args) { if (args == null) throw new ArgumentNullException ("args"); DirectorySeparator = args.DirectorySeparator; EncodedName = args.EncodedName; Attributes = args.Attributes; FullName = args.FullName; Engine = args.Engine; Name = args.Name; Engine.Disconnected += (sender, e) => { Access = FolderAccess.None; }; }
/// <summary> /// Instantiate a new <see cref="ImapFolder"/>. /// </summary> /// <remarks> /// <para>Creates a new <see cref="ImapFolder"/> instance.</para> /// <para>Note: This method's purpose is to allow subclassing <see cref="ImapFolder"/>.</para> /// </remarks> /// <returns>The IMAP folder instance.</returns> /// <param name="args">The constructior arguments.</param> /// <exception cref="System.ArgumentNullException"> /// <paramref name="args"/> is <c>null</c>. /// </exception> protected virtual ImapFolder CreateImapFolder (ImapFolderConstructorArgs args) { return new ImapFolder (args); }
/// <summary> /// Instantiate a new <see cref="ImapFolder"/>. /// </summary> /// <remarks> /// <para>Creates a new <see cref="ImapFolder"/> instance.</para> /// <note type="note">This method's purpose is to allow subclassing <see cref="ImapFolder"/>.</note> /// </remarks> /// <returns>The IMAP folder instance.</returns> /// <param name="args">The constructior arguments.</param> /// <exception cref="System.ArgumentNullException"> /// <paramref name="args"/> is <c>null</c>. /// </exception> protected virtual ImapFolder CreateImapFolder (ImapFolderConstructorArgs args) { var folder = new ImapFolder (args); folder.UpdateAppendLimit (AppendLimit); return folder; }