Skip to content

x-stars/DotNetExtensions

Repository files navigation

XstarS .NET 扩展库

XstarS .NET Extensions => XNetEx

天南十字星 (XstarS) 的自用 .NET 扩展库,程序集名称和命名空间均仿照 .NET 框架。

框架支持

.NET 版本
Core 6.0, 8.0
Framework 4.6.1, 4.7.2
Standard 2.0, 2.1

C# 语言版本 >= 10.0

程序集 XNetEx.Common

系统基础相关,目前包含的命名空间:

  • XNetEx
  • XNetEx.Collections
  • XNetEx.Collections.Generic
  • XNetEx.Collections.ObjectModel
  • XNetEx.Collections.Specialized
  • XNetEx.Diagnostics
  • XNetEx.IO
  • XNetEx.Linq
  • XNetEx.Reflection
  • XNetEx.Reflection.Emit
  • XNetEx.Runtime.CompilerServices
  • XNetEx.Security.Cryptography
  • XNetEx.Text

XNetEx.Operators 类型提供部分常用运算符,建议静态引入后调用。

相关文档:

程序集 XNetEx.CommandLine

提供命令行程序的相关服务,包括:

  • 简易的命令行参数解析器 XNetEx.CommandLine.ArgumentReader,以及其他风格的实现
    • 命令提示符 CMD XNetEx.CommandLine.Specialized.CmdArgumentReader
    • PowerShell XNetEx.CommandLine.Specialized.PowerShellArgumentReader
    • Unix Shell XNetEx.CommandLine.Specialized.UnixShellArgumentReader

相关文档:

程序集 XNetEx.Console

提供控制台相关的扩展方法,包括:

  • 控制台方法扩展 XNetEx.ConsoleEx
    • 逐个读取按空白符分隔的输入 ReadToken
    • 逐个读取按空白符分隔的输入并转换为值 ReadTokenAs
    • 以指定的颜色将值写入输出流 WriteInColor
    • 以指定的颜色将值写入错误流 WriteErrorInColor

程序集 XNetEx.Collections.StructuralComparing

提供结构化对象(数组、集合等)的结构化相等比较的方法。

核心 API 类型:

  • 对象的结构化相等比较 XNetEx.Collections.Generic.StructuralEqualityComparer<T>

程序集 XNetEx.Diagnostics.Representation

提供将对象或结构化对象(数组、集合等)表示为文本的方法。

核心 API 类型:

  • 将对象表示为文本 XNetEx.Diagnostics.Representer<T>
  • 将结构化对象表示为文本 XNetEx.Diagnostics.StructuralRepresenter<T>

程序集 XNetEx.Diagnostics.ValueValidate

提供连续的对象的值的验证和抛出异常的方法。

相关文档:

程序集 XNetEx.ObjectModel

提供部分组件模型类型的实现,包括:

  • 属性更改通知 System.ComponentModel.INotifyPropertyChanged
    • XNetEx.ComponentModel.ObservableDataObject
  • 数据实体验证 System.ComponentModel.INotifyDataErrorInfo
    • XNetEx.ComponentModel.ObservableValidDataObject
  • 命令 System.Windows.Input.ICommand
    • XNetEx.Windows.Input.DelegateCommand

此外还为枚举类型提供了特定的的视图类型,包括:

  • 枚举列表视图 XNetEx.ComponentModel.EnumListView<TEnum>
  • 枚举向量视图 XNetEx.ComponentModel.EnumVectorView<TEnum>
  • 位域枚举向量视图 XNetEx.ComponentModel.EnumFlagsVectorView<TEnum>

相关文档:

程序集 XNetEx.ObjectModel.ObservableProxy

提供以反射发出 System.Reflection.Emit 构造的属性更改通知类型 System.ComponentModel.INotifyPropertyChanged

相关文档:

程序集 XNetEx.Reflection

提供与动态类型生成和动态方法相关的扩展方法,并提供应用以上技术实现的快速动态调用的扩展方法。

核心 API 类型:

  • IL 指令发出扩展 XNetEx.Reflection.Emit.ILGeneratorExtensions
  • 动态类型定义扩展 XNetEx.Reflection.Emit.TypeBuilderExtensions
  • 类型成员动态调用委托创建 XNetEx.Reflection.MemberDelegateExtensions
  • 类型成员快速动态调用扩展 XNetEx.Reflection.MemberFastInvokeExtensions

程序集 XNetEx.Reflection.DispatchProxy

提供转发代理类型 System.Reflection.DispatchProxy 基于委托的简易实现。

程序集 XNetEx.Reflection.DynamicProxy

提供以反射发出 System.Reflection.Emit 构造的动态代理类型。

方法调用包装为通用静态委托 XNetEx.Reflection.MethodDelegate,保持动态代理灵活性的同时避免了反射调用的低效率问题。

核心 API 类型:

  • 直接代理类型 XNetEx.Reflection.DirectProxyTypeProvider
  • 包装代理类型 XNetEx.Reflection.WrapProxyTypeProvider

程序集 XNetEx.Primitives

提供框架原生值类型的补充类型,包括:

  • 24 位有符号整数 XNetEx.Int24
  • 24 位无符号整数 XNetEx.UInt24
  • 半精度浮点数 XNetEx.Half

程序集 XNetEx.Primitives.Unions

提供框架原生值类型的联合 union,包括:

  • 8 位数据类型联合 XNetEx.Unions.ByteUnion: Byte, SByte, Boolean
  • 16 位数据类型联合 XNetEx.Unions.WordUnion: Int16, UInt16, Char
  • 32 位数据类型联合 XNetEx.Unions.DWordUnion: Int32, UInt32, Single
  • 64 位数据类型联合 XNetEx.Unions.QWordUnion: Int64, UInt64, Double
  • 指针或句柄类型联合 XNetEx.Unions.HandleUnion: IntPtr, UIntPtr, Void*

程序集 XNetEx.Win32

Win32 相关,目前包含的命名空间:

  • XNetEx.Win32
  • XNetEx.Win32.Profiles

程序集 XNetEx.Windows

WPF 相关,目前包含的命名空间:

  • XNetEx.Windows.Controls
  • XNetEx.Windows.Data

XAML 命名空间:

<Window xmlns:xnetex="http://dev.x-stars.org/dotnet/extensions"/>