gpt4 book ai didi

caliburn - 什么是 Caliburn 验证抽象

转载 作者:行者123 更新时间:2023-12-01 10:11:35 31 4
gpt4 key购买 nike

最近我看到this详细说明 Caliburn 有多棒的文档(实际上并没有将它与微框架进行比较,这就足够了)。我在 Caliburn 工作了一年多,对它了解不多。

所以也许有人可以解释以下内容(其中一些我可以理解但不知道与 caliburn 的关系):

  1. 验证抽象
  2. 模块框架
  3. 基于表达式树的运行时委托(delegate)生成
  4. View 模型工厂
  5. 外壳框架

我正在使用 V1.1,所以如果 2.0 中有什么新东西,就说它属于新版本,我以后可能会学习它。

最佳答案

  1. 验证抽象旨在在 ViewModel 中插入验证基础结构。
    Caliburn 的 DefaultValidator使用 System.ComponentModel.DataAnnotations,但使用 Fluent Validation 的适配器也可用。
    虽然验证可以直接从应用程序代码中使用,但框架主要在 AOP 验证行为中使用它,它提供了自动 IDataErrorInfo模型的实现。

    如果您的模型已经实现了 IDataErrorInfo , Caliburn 能够利用普通 WPF 绑定(bind) Hook 验证(作为传统绑定(bind)过程的一部分)。
    然而,实现 IDataErrorInfo手动很无聊并且可能导致难以维护的代码,因此 AOP [ValidateAttribute]被介绍。要启用它,您必须将容器配置为使用可用的代理工厂(基于 CaSTLe.DynamicProxy):

    myContainerAdapter
    .WithProxyFactory<Caliburn.DynamicProxy.DynamicProxyFactory>()

    这指示容器适配器检查应用于从容器中提取的 ViewModel(和其他组件)的行为属性,并创建它们的子类来实现指定的行为。

    [Validate]行为实现只是将“IDataErrorInfo”调用委托(delegate)给实际的 IValidator服务。

  2. Caliburn 本身使用模块框架来管理其自身模块的配置和初始化。它还可以用于创建独立的应用程序模块:Caliburn 将负责发现它们(如果它们的程序集已在 IAssemblySource 中注册)并驱动它们的初始化;

  3. Caliburn 不使用反射来调用操作,而是利用表达式树动态构建委托(delegate)来创建已编译的 lambda;
  4. Caliburn 使用 ViewModelFactory 服务来抽象 VM 的创建,无论是按类型还是按 Subject 处理;
  5. ShellFramework 包含一组可用于构建大多数应用程序的工具;它包括一些自定义 IResult (连同用于创建它们的流畅式静态方法)和一些预构建的 ViewModel(菜单和问题/消息对话框)来完成常见的应用程序任务。

关于caliburn - 什么是 Caliburn 验证抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566516/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com