DynamicNotifyPropertyChanged 1.0.0
See the version list below for details.
dotnet add package DynamicNotifyPropertyChanged --version 1.0.0
NuGet\Install-Package DynamicNotifyPropertyChanged -Version 1.0.0
<PackageReference Include="DynamicNotifyPropertyChanged" Version="1.0.0" />
paket add DynamicNotifyPropertyChanged --version 1.0.0
#r "nuget: DynamicNotifyPropertyChanged, 1.0.0"
// Install DynamicNotifyPropertyChanged as a Cake Addin #addin nuget:?package=DynamicNotifyPropertyChanged&version=1.0.0 // Install DynamicNotifyPropertyChanged as a Cake Tool #tool nuget:?package=DynamicNotifyPropertyChanged&version=1.0.0
This library allows you to create types at runtime that implement INotifyPropertyChanged
interface. Each property calls OnPropertyChanged
when its value is changed.
Creating Type
Dynamic class can be created by calling:
DynamicNotifyPropertyChangedClassFactory.CreateType(DynamicProperty[] properties)
DynamicProperty
contains two properties:
- Name
- Type
You must ensure that duplicate properties are not present. Created type is cached. If you pass same set of dynamic properties (even in different order) new type will not be created.
Initializing Created Type
You can create new instance by calling:
DynamicNotifyPropertyChangedClassFactory.CreateTypeInstance(Type type)
Alternatively, you can create Func
that returns new instance by calling:
DynamicNotifyPropertyChangedClassFactory.CreateTypeFactory(Type type)
Both methods use caching and Reflection.Emit
internally for better performance.
Getting Property Value
You can get property value by calling:
ObjectExtensions.GetPropertyValue<T>(this object source, string propertyName)
Alternatively, you can create Func
that gets property value from object by calling:
TypeExtensions.GetPropertyGetter(Type type, string propertyName)
Setting Property Value
You can set property value by calling:
ObjectExtensions.SetPropertyValue<T>(this object source, string propertyName, T value)
Alternatively, you can create Func
that sets property value on object by calling:
TypeExtensions.GetPropertySetter(Type type, string propertyName)
All methods described above use caching and compiled expressions for better performance.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Reflection.Emit (>= 4.7.0)
- System.Reflection.Emit.Lightweight (>= 4.7.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.