解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
2.69 KiB
X
using System.Net.Sockets;
using NewLife.Log;
using NewLife.Model;

namespace NewLife.Net;

/// <summary>基础Socket接口</summary>
/// <remarks>
/// <para>封装所有基础接口的共有特性!</para>
/// <para>核心设计理念:事件驱动,接口统一,简单易用!</para>
/// <para>异常处理理念:确保主流程简单易用,特殊情况的异常通过事件处理!</para>
/// <para>继承自 <see cref="IDisposable2"/>、<see cref="ILogFeature"/>、<see cref="ITracerFeature"/>,具备完整的生命周期管理、日志和追踪能力。</para>
/// </remarks>
public interface ISocket : IDisposable2, ILogFeature, ITracerFeature
{
    #region 属性
    /// <summary>名称</summary>
    /// <remarks>主要用于日志输出和调试识别</remarks>
    String Name { get; set; }

    /// <summary>基础Socket对象</summary>
    /// <remarks>底层的Socket实例,可用于高级操作</remarks>
    Socket? Client { get; }

    /// <summary>本地地址</summary>
    /// <remarks>指定Socket绑定的本地网络地址,包含协议类型、IP地址和端口</remarks>
    NetUri Local { get; set; }

    /// <summary>端口</summary>
    /// <remarks>本地监听或绑定的端口号,0表示由系统自动分配</remarks>
    Int32 Port { get; set; }

    /// <summary>消息管道</summary>
    /// <remarks>
    /// <para>收发消息都经过管道处理器,进行协议编码解码。</para>
    /// <para>处理顺序:</para>
    /// <list type="number">
    /// <item>接收数据解码时,从前向后通过管道处理器</item>
    /// <item>发送数据编码时,从后向前通过管道处理器</item>
    /// </list>
    /// </remarks>
    IPipeline? Pipeline { get; set; }

    /// <summary>是否输出发送日志</summary>
    /// <remarks>默认false,启用后会在日志中输出发送的数据内容</remarks>
    Boolean LogSend { get; set; }

    /// <summary>是否输出接收日志</summary>
    /// <remarks>默认false,启用后会在日志中输出接收的数据内容</remarks>
    Boolean LogReceive { get; set; }
    #endregion

    #region 方法
    /// <summary>输出日志</summary>
    /// <remarks>日志输出时自动加上前缀标识</remarks>
    /// <param name="format">格式化字符串</param>
    /// <param name="args">格式化参数</param>
    void WriteLog(String format, params Object?[] args);
    #endregion

    #region 事件
    /// <summary>错误发生/断开连接时</summary>
    /// <remarks>发生网络错误或连接断开时触发,事件参数包含错误动作和异常信息</remarks>
    event EventHandler<ExceptionEventArgs> Error;
    #endregion
}