写点什么

使用 IL 织入将 INotifyPropertyChanged 注入到属性中

2012 年 2 月 14 日

Simon Cropp 发布了一个 IL 织入(IL weaving)工具,可以将属性变更通知与自动实现属性关联在一起。IL 织入技术,是指装配件中的 IL 代码可以重写,以添加更多功能。在更广泛的技术上下文中,该技术被称为面向方面编程

Simon 的这个 Notify Property Weaver 有一个有趣的功能,它不需要特性或其他形式的标签。实际上,它分析代码,以确定一般属性与调整过的属性之间的关系。这些关系接下来就会用来确保所有正确的属性变更通知都可以发出。

Notify Property Weaver 作为 MSBuild 任务运行,使用它的项目就不要分发其他额外的程序库。它可以手工配置,或通过 Visual Studio 扩展配置。它支持.NET 3.5 以上版本、SilverLight3 以上版本,以及基于 MIT 协议发布的 Windows Phone 7.

查看英文原文: Using IL Weaving to Inject INotifyPropertyChanged into Properties

2012 年 2 月 14 日 15:031280
用户头像

发布了 479 篇内容, 共 124.0 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
  • 面向未来的原生化 Web 开发

    演讲嘉宾 郭力恒,广发证券前端技术专家。 内容介绍 Webassembly是浏览器的字节码技术。这项技术使原生代码C/C++/Rust可以编译为wasm,并运行于浏览器上。相比原生开发,它跨平台,安全;相比js,它拥有显著的性能优势。 本次分享主要包含两个方面的内容,一个是介绍和推广Webassembly技术,讲解它是如何在浏览器环境下工作的。二是介绍使用Rust,js混合开发WebAssembly应用。使用原生技术开发大前端,由于其无可比拟的性能优势,必然成为未来前端工程师不可缺少的技术栈。

    2018 年 9 月 12 日

  • React 中拖放的实现

    2018 年 8 月 17 日

  • WPF 的 Docking 框架 ——AvalonDock

    AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件。最新发布的版本原生支持MVVM框架、Aero Snap特效并具有更好的性能。

  • Telerik 承诺提供一个永久免费的.NET 反编译器

    Telerik是一个制作.NET和敏捷开发工具的公司,它宣布用于浏览和反编译代码的工具JustDecompile将会永久免费。

  • Update By Query & Reindex API

    2019 年 8 月 21 日

  • VB 中动态编程的技巧和挑战:多重分派

    随着VBx对动态编程的更多支持计划,现在来讨论Visual Basic中已经存在的动态属性是个不错的时机。这一部分,我们讨论多重分派(Multiple Dispatch)。

  • 换个角度看 Vue 组件

    演讲嘉宾唐金州,校宝在线 技术专家,Ant Design Vue 作者,极客时间《Vue开发实战》视频课讲师。第二届 VueConf 演讲嘉宾,主导开发的 Ant Design Vue 在 GitHub 已有 6000+ Star,并且已经纳入 Ant Design 官方域名下,成为了蚂蚁金服 Ant Design 官方唯一指定的 Vue 版组件库。曾任职于搜狗、蚂蚁金服,并主导研发了多个 UI 框架和前端架构设计,在移动端和中后台都有丰富的开发经验。除了 Vue 之外,对 React 也有多年的开发经验。内容介绍组件系统是 Vue 的核心概念,理解 Vue 组件的思想不难,但如何将组件思想有效的传达给后端人员或初级开发人员并不是一件简单的事情,在极客时间《Vue 实战课程》的录制中,对 Vue 组件有了更深一步的理解,当我换个角度看组件之后,发现了一些有趣的事情,并将这些“事情”在Ant Design Vue 中实践。本次 Talk 将从如下5个方面进行分享:演讲提纲: 什么是组件 又爱又恨的函数式组件 当插槽碰上函数式组件 指令的另外一种用处 简约而不简单的 Vue

    2019 年 7 月 24 日

  • 蚂蚁亿级金融业务的前端实践

    演讲嘉宾沈礼(皓默),蚂蚁金服前端技术专家内容介绍蚂蚁花呗作为金融业务的代表,经过3年时间,逐步成长为一个亿级用户产品。对于互联网金融产品,一方面有着比其他互联网产品更高的可用性和性能,另一方面基于产品特性对于开放、工程、架构设计更高的要求。同时也经历了大部分互联网前端业务的前后端分层、React为代表的前端框架升级改造等技术演进。NodeJS在工程、Web、IOT等领域都有大量的应用场景。在蚂蚁微贷等金融业务中,把它作为BFF(backend for frontend)的实现引入, 显著提升了开发效率和产品质量。同时通过移动端React技术栈升级、容器离线包缓存和PWA技术的使用,顺利地保障亿级用户的双十一大促稳定和业务开放战略。这次分享将会介绍蚂蚁金服以上这些方面的经验。

    2018 年 12 月 18 日

  • 了解 JavaScript 新特性:Optional Chaining

    Optional Chaining 是 JavaScript 的一个新特性,它允许我们在尝试访问对象的属性之前检查对象是否存在。

  • C# 7.1 先睹为快(第二部分)

    昨天我们介绍了异步Main函数(Async Main)和默认表达式(Default Expressions)。我们的C# 7.1之旅将继续,今天要介绍的特性在建议中称为推导元组名(Infer Tuple Names)和使用泛型的模式匹配(Pattern-matching with Generics)。

  • Ingest Pipeline & Painless Script

    2019 年 8 月 21 日

  • .NET 和动态语言

    在今后的数月和数年内,动态语言将成为.NET平台上越来越重要的角色。微软在动态语言和CLR之间的集成作了大量的投资。

  • 把成熟的代码从.NET 移植到 Mono

    跨平台代码重用对很多开发者来说是一个重要目标,而Mono平台正是为了促成这个目标而设计的。但究竟把一个现有的.NET项目移植到Mono有多容易?NDepend的开发者Patrick Smacchia在最近的一篇文章里分享了他的经验。

  • 针对 C++ 和 Delphi 的 LiveBindings 一瞥

    绑定表达式(Binding expression)并不是新概念,XAML和Flex开发者主要就依靠这个。但除C++/CX(只用于WinRT编程)之外,原生编程语言中通常见不到这种概念。不过为VCL和FireMonkey设计的LiveBindings却是个例外。

  • PostSharp 2.0 通过 IDE 的支持,让面向方面编程变得更容易

    对于面向方面编程最大的抱怨在于实际编译后的代码难以理解。在看到源代码的时候,开发人员总会问:“究竟是哪个方面产生了影响?”而对于.NET开发人员来说,现在可通过PostSharp找到答案。

发现更多内容

花火交易所系统开发、雷达模式系统搭建开发

W13902449729

花火交易所系统开发 雷达模式系统搭建开发

新的方式-谷歌浏览器插件的使用【天猫超市抢购飞天茅台】

谙忆

SpringBoot太强了、ShardingSphere上榜

云流

spring 编程 框架

化妆品溯源系统开发,区块链防伪溯源

135深圳3055源中瑞8032

第1周架构方法总结

Richard

UML 需求分析 概要设计 软件架构设计 详细设计

理财之我见

三石

理财 28天写作

音频特征提取方法和工具汇总

行者AI

音视频算法

助力ARM生态 —Dragonwell新增aarch64支持

阿里云基础软件团队

架构师训练营第七周作业

zamkai

Synchronized 精讲

伯阳

Java 多线程 高并发 synchronized java关键字

数仓建设中最常用模型--Kimball维度建模详解

五分钟学大数据

大数据 数据仓库 数仓 维度建模

博弈论 - 海盗分金

石云升

博弈论 28天写作 海盗分金

python 输入输出

老赵

Python 28天写作

探索 React 合成事件

pingan8787

前端 React 28天写作

原理竟然是这!GitHub上标星13k的《Android面试突击版》,醍醐灌顶!

欢喜学安卓

android 程序员 面试 移动开发

前端性能优化

roadup

前端工程 性能调优

不可多得的干货!耗时两个礼拜,8000字安卓面试长文,内含福利

欢喜学安卓

android 程序员 面试 移动开发

CSS ( Cascading Style Sheets )

roadup

CSS

从零开始打造企业运营管理系统(1)

dowell87

28天写作

跨界

张老蔫

28天写作

巧合?达摩院2021十大科技是十九世纪那场幻想的升级版?

Java架构师迁哥

计算机网络基础

roadup

TCP 网络 HTTP 计算机 HTTP3.0

Spring5.0源码学习系列之Spring AOP简述

AI乔治

Java spring 架构

漫谈分层架构:为什么要进行架构分层?

AI乔治

Java 架构 高可用系统的架构 高可用架构

智慧社区安防建设的功能,智慧社区建设方案

135深圳3055源中瑞8032

DAPP智能合约交易系统开发、DAPP系统开发的详细解释

W13902449729

DAPP智能合约交易系统开发 DAPP系统开发

重学JS | 改变函数上下文的3种方式

梁龙先森

前端 编程语言 28天写作

精选算法面试-队列

李孟

算法 队列 28天写作

不交“人脉”交朋友:新荣耀的底气与新机

脑极体

12月阿里蚂蚁金服四面(已拿offer)Java技术面经总结:项目+源码+jvm调优+MySQL

云流

Java 学习 编程 程序员 面试

redis中的一致性hash

原来不悔

redis 一致性hash

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

使用IL织入将INotifyPropertyChanged注入到属性中-InfoQ