随笔分类 - C# 技术
摘要:1、前言 Prism库提供了一个事件机制,使应用程序中松散耦合的组件之间能够进行通信。此机制基于事件聚合器服务,允许发布商和订阅者通过事件进行通信,并且仍然没有直接引用对方。提供多播发布/订阅功能。这意味着可以有多个发布商提出相同的事件,也可以有多个订阅者收听同一事件。考虑使用该事件在模块之间发布事
阅读全文
摘要:1、前言 模块化开发是程序开发的一种方式,他将程序分为一组松散耦合的功能单元(命名模块),可集成到更大的应用程序中。模块封装了应用程序整体功能的一部分,通常代表一组相关功能。它可以包括一系列相关组件,如应用程序功能(包括用户界面和业务逻辑)或应用程序基础架构(如用于记录或验证用户的应用程序级服务)。
阅读全文
摘要:一、事件 Prism提供了对要显示或编辑的视图中的数据进行处理以外,ViewModel 还可能定义用户可以执行的一个或多个操作。用户可以通过 UI 执行的操作通常被定义为Command。Command提供了一种方便的方式来表示操作,这些操作很容易与 UI 中的控件绑定。它们封装了实施操作或操作的实际
阅读全文
摘要:开始使用prism是很容易的。按照下面的步骤,你可以快速构件prisim程序。 一、安装依赖包 在Visual Studio创建全新的 WPF 应用程序,接下来是安装适当的依赖包,Unity 将是首选的容器。 安装容器完成后,即可进行程序的开发 二、覆盖现有应用对象 下一步是将新创建的 WPF 项目
阅读全文
摘要:一、简单授权 ASP.NET Core 中的授权通过 AuthorizeAttribute 和其各种参数来控制。 在其页面中,通过 [Authorize] 属性应用于控制器、操作或 Razor 页面,限制对已通过身份验证的用户的访问。 示例如下: [Authorize] public class A
阅读全文
摘要:我们在定义一个新类的时候,这个类无法用现在的编辑器表达,我们需要自定义一个可以表达当前对象属性的编辑器的时候,就需要使用UITypeEditor。 我们定义一个坐标控件,基本定义如下: 代码呈现如下: public partial class UserControl1 :Form { public
阅读全文
摘要:前面章节说明了一个重要的类TypeConverter,有些对象需要提供自定义的描述的时候,TypeConverter可能就不满足,在那些情况下,需要实现自定义的描述呢, 比如以下需求: 当对象需要动态类型信息时,需要自描述的时候。 COM 对象的类型信息,COM 对象不支持属性或属性,需要使用Icu
阅读全文
摘要:Descriptor是实现当前对象描述的一个重要的类,其主要有以下几个类,这些类主要是进行。 1、TypeDescriptor 用于描述一个类型的信息,其是Type的一个扩充和补充,也可以用于类型转换等,这个类是一个最终类,无法继承此类。提供有关组件特征的信息,如组件的特性、属性和事件。 Syste
阅读全文
摘要:类型转换的作用,是实现PropertyGrid输入的多个文本信息,能够与对象进行有效的转化,比如我们具有如下一个对象: using System; using System.Collections.Generic; using System.ComponentModel; using System.
阅读全文
摘要:我们在做窗体应用程序开发中,通常需要通过以下界面,完成对象的动态修改,其简单快捷的操作方式,大大提升了我们开发效率,如图: 在当前原始控件无法满足我们的要求的时候,我们通常需要自定义控件,为了提升控件的通用性,我们也希望这个控件可以通过以上属性对话框进行动态修改。我们定义如下控件: using Sy
阅读全文
摘要:我们常常有一个应用场景,由我们的C#代码,动态生成一个EXE,其应用场景可以非常多,比如软件授权,可以输入授权信息后,生成一个授权的DLL等,那如何实现这个功能呢,就要提到一个技术Emit。 1、Emit概述 Emit,可以称为发出或者产生。在Framework中,与Emit相关的类基本都存在于Sy
阅读全文
摘要:一、反编译类 1、 .NET Reflector .NET Reflector是一个.NET工具。.NET开发人员用它来反编译和观察内在内容,了解应用程序接口(API)、组件、框架以及所使用的所有关键代码是如何工作的。此外,还可以通过自身的代码、第三方组件和所使用的任何编译的.NET代码跟踪漏洞。可
阅读全文