Skip to content

Releases: CatLib/Core

CatLib Core 1.2 Beta

20 Jan 09:39
3874a17
Compare
Choose a tag to compare
CatLib Core 1.2 Beta Pre-release
Pre-release

中文文档catlib.io / 英文文档en.catlib.io
问答社区ask.catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.2.0

1.2 版本的改动轻微不兼容与 1.1.x 您需要根据提示修改。

新增内容

  • App类可以被继承。
  • 容器可以为实现 IDisposable 接口的对象,在 Release 时会自动触发接口。
  • 容器增加可变类型接口(IVariant),允许将一个基础类型转为复杂类型。
  • 容器增加Params数据结构,允许容器进行参数名参数匹配。
  • 容器增加 BindMethod 方法允许向容器注册一个方法。
  • 容器增加 OnReboundWatch 函数,该函数用于监听当已经解决的服务发生重定义时触发的事件,这个事件对实例绑定的服务也会有效。
  • Str辅助函数库增加了Method方法可以获取字符串中符合规则的函数名。
  • Arr增加了Flash函数,该函数可以处理只在片段时间内产生作用的内容。
  • 增加了字典辅助函数库(Dict)
    -- Filter函数可以过滤返回值为false的键值对
    -- Remove函数可以移除比较回掉返回为true的元素
    -- Modify函数可以直接修改键值对的值
    -- AddRange允许批量添加到字典
    -- Map函数将回调的返回值作为新的字典
    -- Keys函数可以获取字典的键名数组
    -- Values函数可以获取字典的值数组
    -- Get函数可以通过点状表达式访问深度字典
    -- Set函数可以通过点状表达式写入深度字典
    -- Remove函数可以通过点状表达式删除深度字典元素
  • Arr 增加了 RemoveAt 函数,可以通过数组下标移除元素,并且返回被移除的元素值。
  • Container.Call 支持直接为lambda表达式提供依赖注入。

更新内容

  • 容器获得了更好的绑定(Bind)校验并及时的抛出异常。
  • Facade(门面)机制优化, 拥有了更好的访问性能。
  • 容器中string被认为是不可以被实例的对象。
  • 全局事件系统关联服务容器,这意味着所有的函数绑定事件不会再限制参数了,容器会选择最合适的参数自动注入。
  • 全局事件移除生命周期支持,因为全局事件的监听不应该频繁发生变化,生命周期功能会诱导开发者进行不正确的操作
  • 优化了注入算法,能够尽可能的推导出注入实例。
  • OnResolvingOnRelease 所加入的新的修饰器不会再处理已经生成的实例。实例的变化应该使用Watch来监控
  • 容器注入的策略被调整为必然注入成功(不为null)(以前是可以为null)(如果希望提供默认值必须显示的申明)否则将抛出一个不能解决的异常
  • 容器在无法解决注入时可以根据 @变量名 来推测类型了。
  • BindIf API 不再返回已绑定的api,而是返回bool来表示是否成功绑定,IBindData 将以out参数的形式返回。
  • 全局修饰器的策略调整为即时状态不会再为已经生成的对象进行修饰。因为旧的设计这会导致表达语意不明。
  • 对于基础类型的注入变得更加严格,不能在直接注入基础类型的默认值了例如:int的默认值为0,因为我们认为这可能会导致一些不被发现的错误。
  • 对容器进行了重构,使容器具备更加好的可拓展性及性能,同时也开放了大量可以直接更改容器行为的虚函数,这对于其他框架开发者或者高级定制的开发者可以更加轻松的修改容器行为。
  • 用户参数注入的检查由绝对顺序调整为相对顺序,这意味着参数顺序的要求将会更加松散。

Bug修复

  • 修复了一个bug这个bug导致在调用Instance时如果存在修饰器修改对象的情况,那么不能返回已经被修改的对象。
  • 修复了 App.Trigger 返回值不正确的bug。

移除内容

  • 移除了LRUCache,理由是由于性能不过关。
  • 移除了Inject注入标记的Required选项,因为我们认为Required的存在使开发者不再注重对传入值的校验,这对于非catlib下使用组件是存在安全风险的。

CatLib Core 1.1.3 RC

01 Nov 11:58
Compare
Choose a tag to compare

中文文档catlib.io / 英文文档en.catlib.io
问答社区ask.catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.1.3

通过Nuget安装CatLib Core(NetStandard 编译)

Install-Package CatLib.Core.NetStandard -Version 1.1.3

新增

  • 增加了新的模版方法:ManagedSingleManaged 用于扩展不对外开放的管理器。
  • App增加OnNewApplication事件
  • 增加了Str.Truncate可以用于裁剪字符串
  • 增加了Arr.Difference用于排除指定的值

其他

  • 已过时了一些接口并提供了相应替换方案。
  • 一些内部bug的修正

CatLib Core 1.1.1 RC

21 Oct 06:33
Compare
Choose a tag to compare

中文文档catlib.io / 英文文档en.catlib.io
问答社区ask.catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.1.1

通过Nuget安装CatLib Core(NetStandard 编译)

Install-Package CatLib.Core.NetStandard -Version 1.1.2

开发者体验改善:

  • 错误提示对开发者更加友好和直观
  • 更加完善的单元测试覆盖

Bug修复:

  • 兼容合并源码时会导致的类型错误

其他调整:

  • 移除了NUnit的单元测试支持
  • 增加了对于NetStandard框架的编译

CatLib Core 1.1.0 RC

13 Oct 06:28
Compare
Choose a tag to compare

中文文档catlib.io / 英文文档en.catlib.io
问答社区awk.catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.1.0

开发者体验改善

  • 错误提示对开发者更加友好和直观
  • Container在手动给予参数时如果转换失败辣么会抛出异常
  • Application事件名变得更有意义
  • 鲁棒性增强

错误修正

  • 错误的函数名修正: Releases 修正为 Release

新增功能

  • 增加了启动引导完成事件: OnBootstraped
  • Arr 增加 IndexOf 查找函数

已过时

  • 已过时: Str.RegexQuote()

其他改进

  • 将事件转移至Support(所有using CatLib; 的可以无缝升级)

CatLib Core 1.0.0 RC

25 Sep 04:22
Compare
Choose a tag to compare

中文文档catlib.io / 英文文档en.catlib.io
问答社区awk.catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.0.0

更新内容

  • 依赖注入容器
  • 基础事件系统
  • 标准库