当前位置: 首页 > wzjs >正文

两个彩票网站做赔付东莞网络公司代理

两个彩票网站做赔付,东莞网络公司代理,深圳品牌网站建设公司哪家好,义乌网站建设工作室1、Prism 介绍 ​定位​: Prism 是 ​微软推出的框架,专为构建 ​模块化、可维护的复合式应用程序​ 设计,主要支持 WPF、Xamarin.Forms、UWP 等平台。​核心功能​: ​模块化开发​:将应用拆分为独立模块&#xff0c…

1、Prism 介绍

  • 定位​:
    Prism 是 ​微软推出的框架,专为构建 ​模块化、可维护的复合式应用程序​ 设计,主要支持 WPF、Xamarin.Forms、UWP 等平台。
  • 核心功能​:
    • 模块化开发​:将应用拆分为独立模块,按需加载。
    • 导航管理​:处理页面导航和参数传递。
    • 事件聚合​:通过事件总线实现松耦合的组件通信。
    • 依赖注入集成​:支持多种 DI 容器(如 Unity、DryIoc、Autofac)。
  • 与 DI 容器的关系​:
    Prism ​不直接提供 DI 容器,但提供接口(IContainerRegistry 和 IContainerProvider)来集成第三方容器(如 Unity 或 DryIoc)。

2、Prims 模版扩展安装

在Visual Studio 2022 管理扩展中加载

3、Prism - Unity 和 DryIoc选择

 Unity

  • 定位​:
    Unity 是 ​微软开发的依赖注入容器,属于 Enterprise Library 的一部分,功能全面但较为重量级。
  • 核心功能​:
    • 依赖注入​:支持构造函数注入、属性注入、方法注入。
    • 生命周期管理​:单例、瞬态、作用域等生命周期控制。
    • 扩展性​:支持自定义扩展(如拦截器、策略)。
  • 性能​:
    早期版本性能较低,但最新版本(Unity 5+)已优化。
  • 适用场景​:
    适合企业级应用,尤其是需要复杂依赖管理和扩展性的项目。

DryIoc

  • 定位​:
    DryIoc 是 ​轻量级、高性能的依赖注入容器,以极快的解析速度著称。
  • 核心功能​:
    • 极速解析​:通过优化代码生成和缓存实现高性能。
    • 简洁 API​:配置简单,学习成本低。
    • 零依赖​:无外部库依赖,适合轻量化项目。
    • 高级功能​:支持条件注册、装饰器、元数据等。
  • 性能​:
    在基准测试中通常比 Unity 快 2-10 倍。
  • 适用场景​:
    适合对性能敏感的应用(如游戏、高频服务)或需要轻量级 DI 容器的场景。

4、创建Prism工程

文件>新建项目

5、工程目录结构

  • Prism 完整应用程序 - 此项目模板创建一个 Prism 应用程序,其中包含一个 Shell 项目、一个模块项目、一个核心项目、一个服务项目和一个单元测试项目。

6、核心对象介绍

      BindableBase  数据与行为绑定对象

简介

BindableBase 是 Prism 中实现 数据绑定通知 的核心基类,继承自 INotifyPropertyChanged 接口。它简化了属性变更通知的触发逻辑,确保 UI 能够自动响应数据变化。

作用与特性
自动触发通知:通过 SetProperty 方法设置属性值,自动触发 PropertyChanged 事件。
减少样板代码:避免手动编写 if (value != field) { ... } 和事件触发逻辑。
支持派生类:ViewModel 通常继承 BindableBase,直接使用其功能。
关键方法
SetProperty(ref T field, T value):基础属性设置。
SetProperty(ref T field, T value, Action onChanged):设置属性并执行回调。
RaisePropertyChanged(string propertyName):手动触发指定属性的通知。

   IContainerRegistry IContainerProvider

  • IContainerRegistry:用于注册服务(接口与实现的映射)。
  • IContainerProvider:用于解析(获取)已注册的服务实例。
     public MainViewModel(IContainerProvider containerProvider){var service = containerProvider.Resolve<IMessageService>();}
    

注册方式


# 接口绑定实现类:
containerRegistry.Register<IMessageService, MessageService>();
#直接注册具体类(无需接口):
containerRegistry.Register<MessageService>();#单例(Singleton):全局唯一实例。
containerRegistry.RegisterSingleton<IMessageService, MessageService>();
#瞬态(Transient):每次解析创建新实例。
containerRegistry.Register<IMessageService, MessageService>();#实例注册:直接注入已有实例。
var logger = new FileLogger();
containerRegistry.RegisterInstance<ILogger>(logger);#同一个接口多个实现,注册时加别名containerRegistry.Register<IMessageService, MessageService>("msg");
containerRegistry.Register<IMessageService, EmailMessageService>("emailMsg");

注入方式

#1、构造函数注入  **推荐
private readonly ILogger _logger;
private readonly IEventAggregator _eventAggregator;public MessageService(IEventAggregator eventAggregator, ILogger logger)#2、属性注入[Dependency]
public ILogger Logger { get; set; }

IEventAggregator

在Prism框架中,事件总线(Event Aggregator) 是实现松耦合跨组件通信的核心机制。它通过发布-订阅模式(Pub-Sub)让不同模块、视图或服务之间无需直接引用即可传递消息,尤其适用于模块化架构和MVVM模式。

核心组件 直接依赖注入

# 使用流程# 定义事件 
// 有参事件
public class NoMicDeviceEvent : PubSubEvent<bool> { }
// 无参事件
public class AppExitEvent : PubSubEvent{ }# 发布事件// 发布有参事件
_eventAggregator.GetEvent<NoMicDeviceEvent>().Publish(true);// 发布无参事件
_eventAggregator.GetEvent<AppExitEvent>().Publish();# 订阅事件// 订阅事件(自动强引用,需手动取消订阅)
_eventAggregator.GetEvent<NoMicDeviceEvent>().Subscribe((bo) => HandleNoMicDeviceEvent(bo));// 处理事件的回调方法
private void HandleNoMicDeviceEvent(bool isNoMic)
{//处理逻辑
}# 订阅参数
.Subscribe(Action<TPayload> action,                     // 回调方法ThreadOption.UIThread,                // ThreadOption threadOption 在UI线程执行keepSubscriberReferenceAlive: false,  // 弱引用Predicate<TPayload> filter:           // 过滤数据
#参数#回调方法
#执行具体的业务逻辑(如更新数据库、刷新UI)。#filter
#过滤无关事件(如只处理特定用户或状态的数据)。#keepSubscriberReferenceAlive
#控制订阅者生命周期(View/ViewModel用弱引用,服务层可强引用)。#ThreadOption
#PublisherThread:在发布事件的线程执行(默认)。
#UIThread:在UI线程执行(安全更新界面)。
#BackgroundThread:在线程池后台线程执行(避免阻塞UI)
#解决跨线程问题(UI操作必须在UI线程,耗时操作在后台线程)。# 卸载事件
_eventAggregator.GetEvent<NoMicDeviceEvent>().Unsubscribe((bo) => HandleNoMicDeviceEvent(bo));

http://www.dtcms.com/wzjs/94068.html

相关文章:

  • 全国新农村建设网站上海网站seo外包
  • 长沙公司网站建立最近发生的新闻
  • 苏州网页建站服务商最近一周的新闻热点事件
  • wordpress 去除评论模块seo短视频网页入口营销
  • 医疗美容医院网站建设seo推广优势
  • 做推广可以在哪些网站发布软文网络广告怎么做
  • 东莞微网站建设网络运营工作内容
  • 用dw做的网站青岛网络seo公司
  • 企业建设网站的主要目的有哪些绍兴seo网站优化
  • 提示该域名为lp网站长沙seo排名外包
  • 机关网站建设前期准备工作搜索引擎优化简称
  • 太原注册公司网站最近几天的重大新闻事件
  • 扁平网站欣赏网站策划方案
  • 2小时学会php网站建设办公软件培训
  • 西安做网站需要多少钱关键词的分类和优化
  • 东莞手机微信网站如何优化
  • 苏州高端网站建设机构北京seo
  • 商丘做网站的公司seo优化费用
  • 数码产品网站建设计划书制作网页的网站
  • 电商网站建设推荐怎么建立一个网站
  • 网站图标添加seo外链推广
  • 电脑当服务器做网站公司网站制作需要多少钱
  • 黄石市下陆区建设管理局网站seo网站优化报价
  • 十堰北京网站建设抖音推广引流平台
  • 网站建设的背景意义自媒体发布软件app
  • 仿政府网站产品网络推广怎样做
  • wordpress伪静态规则成都网站seo外包
  • 淳安网站建设网络推广网站推广方法
  • 购物网站开发大纲成都正规搜索引擎优化
  • 乐昌市建设网站网站推广的渠道有哪些