Commit Graph

154 Commits

Author SHA1 Message Date
Sergio Pedri d18998a054 Add parameter null validation to DependencyInjection API 2021-12-14 10:33:06 +01:00
Sergio Pedri 9af66c4a8d Add parameter null validation to ComponentModel APIs 2021-12-14 10:33:06 +01:00
Sergio Pedri 796c1e218b Add polyfill for ArgumentNullException.ThrowIfNull 2021-12-14 10:33:05 +01:00
Sergio Pedri c010ca5f11 Minor code refactoring 2021-12-14 10:33:05 +01:00
Sergio Pedri 216b403759 Add more documentation to unsupported paths 2021-12-13 13:36:29 +01:00
Sergio Pedri aa560fe256 Break down documentation into paragraphs 2021-12-13 13:36:29 +01:00
Sergio Pedri 56fb755f14 Fix a bug in StrongReferenceMessenger.IsRegistered 2021-12-13 13:36:29 +01:00
Sergio Pedri 3d59fd019b Remove unnecessary generic type parameters 2021-12-13 13:36:29 +01:00
Sergio Pedri fa7042fd80 Update StrongReferenceMessenger internal documentation 2021-12-13 13:36:28 +01:00
Sergio Pedri 8b2cad51f8 Add Unit type specialization to StrongReferenceMessenger 2021-12-13 13:36:28 +01:00
Sergio Pedri 6b02f86f0a Enable IRecipient<TMessage> optimization for StrongReferenceMessenger 2021-12-13 13:36:28 +01:00
Sergio Pedri 48ae66cdd7 Use MessageHandlerDispatcher handlers in StrongReferenceMessenger 2021-12-13 13:36:28 +01:00
Sergio Pedri 96dee08dc6
Merge pull request #48 from CommunityToolkit/dev/appcontext-switches
Enable INotifyPropertyChanging AppContext switch
2021-12-13 13:35:48 +01:00
Sergio Pedri 32a27ee157
Merge pull request #44 from CommunityToolkit/dev/weak-messenger-opts
Optimize WeakReferenceMessenger
2021-12-10 01:12:28 +01:00
Sergio Pedri b26db77f48 Enable IsINotifyPropertyChangingDisabled switch in ObservableObject 2021-12-10 01:03:19 +01:00
Sergio Pedri ffaacbad9f Add Configuration type 2021-12-10 01:03:19 +01:00
Sergio Pedri 75c51164b3 Add concurrency control setting to [ICommand] attribute 2021-12-10 00:08:12 +01:00
Sergio Pedri a6160f2126 Remove unnecessary async state machine allocations 2021-12-10 00:02:22 +01:00
Sergio Pedri 01d7102ea9 Add cancellation support to AsyncRelayCommand<T> 2021-12-10 00:02:22 +01:00
Sergio Pedri 03989131d1 Add cancellation support to AsyncRelayCommand 2021-12-10 00:02:22 +01:00
Sergio Pedri 5dc526aa10 Add [AlsoNotifyCanExecuteFor] attribute type 2021-12-09 21:01:30 +01:00
Sergio Pedri 7046476d51 Minor codegen improvements
Removed type checks from guarded devirtualization when broadcasting
2021-12-09 11:35:26 +01:00
Sergio Pedri 2b690d7f60 Tweak StrongReferenceMessenger.Send to remove null suppression 2021-12-09 11:01:17 +01:00
Sergio Pedri 1b66760d67 Add initial support for [ICommand] CanExecute property 2021-12-09 10:49:58 +01:00
Sergio Pedri 6cb7e571d4 Add more comments and XML docs 2021-12-02 18:04:04 +01:00
Sergio Pedri 27ed92db88 Skip array covariance checks in ArrayPoolBufferWriter<T> 2021-12-02 18:04:04 +01:00
Sergio Pedri 39388b1c1e Optimize ConditionalWeakTable2<,>.Enumerator
Also done some refactoring to streamline code across targets
2021-12-02 18:04:04 +01:00
Sergio Pedri 75869de313 Optimize WeakReferenceMessenger broadcast loop 2021-12-02 18:04:04 +01:00
Sergio Pedri 96606f208d Enable fast paths for IRecipient<TMessage> recipients 2021-12-02 18:04:04 +01:00
Sergio Pedri c0f1704aed Remove Unsafe.As<T>(object) delegate type aliasing 2021-12-02 18:04:04 +01:00
Sergio Pedri 416653a2aa Enable Unit type specialization for WeakReferenceMessenger 2021-12-02 18:04:03 +01:00
Sergio Pedri 316557b683 Fix a bug in Dictionary2<TKey, TValue>.Enumerator.MoveNext() 2021-12-02 18:04:03 +01:00
Sergio Pedri dd2a827694 Switch messengers to new dictionary, code refactoring 2021-12-02 18:04:03 +01:00
Sergio Pedri 622be37d5c Specialize Dictionary<TKey, TValue> for the messenger types 2021-12-02 18:04:03 +01:00
Sergio Pedri 7c2bc7f0ed Port Dictionary<TKey, TValue> from .NET 6 2021-12-02 18:04:03 +01:00
Sergio Pedri a86eb44474 Hoist enumeration lock for custom conditional table 2021-12-02 18:04:03 +01:00
Sergio Pedri a6f5dc5ff2 Remove tracking of multiple active enumerators 2021-12-02 18:04:03 +01:00
Sergio Pedri c2a8731452 Switch .NET table GetEnumerator() to ref struct enumerator 2021-12-02 18:04:02 +01:00
Sergio Pedri 03032c7a1a Moved .NET Stadard 2.0 ConditionalWeakTable type 2021-12-02 18:04:02 +01:00
Sergio Pedri 65e6746c57 Initial refactor pass for .NET 6 ConditionalWeakTable 2021-12-02 18:04:02 +01:00
Sergio Pedri aaecb7176b Port ConditionalWeakTable<TKey, TValue> from .NET 6 2021-12-02 18:04:02 +01:00
Sergio Pedri 35b034fc62 Fix StrongReferenceMessenger.Unregister, add concurrent unit tests 2021-11-29 14:21:08 +01:00
Sergio Pedri 32c23450f9 Fix some bugs in StrongReferenceMessenger.Unregister[All] APIs 2021-11-29 13:31:49 +01:00
Sergio Pedri 1910995151 Update CommunityToolkit.Mvvm to .NET 6 2021-11-22 17:37:34 +01:00
Sergio Pedri e2b336184f Fix app domain unloading issue on .NET Framework 2021-11-02 02:36:45 +01:00
Sergio Pedri 6afdd81742 Refactor multiline variable declarations 2021-11-01 23:42:45 +01:00
Sergio Pedri 51c7a67c20 More code style improvements and tweaks
- Remove unused namespaces
- Remove unused attributes
- Remove unnecessary #nullable enable directives
- Sort using directives
- Simplify names
2021-11-01 22:29:46 +01:00
Sergio Pedri c176080d37 Switch whole solution to file-scoped namespaces 2021-11-01 20:46:46 +01:00
Sergio Pedri 7a2295b03c Update some code style rules
In particular:
- Use explicit types everywhere to improve clarity
- Use target-typed new() expression when target is explicit
- Use explicit discard for value-returning statements
2021-11-01 20:34:00 +01:00
Sergio Pedri 11ab330e69 Enable nullability annotations in the entire solution 2021-11-01 19:27:55 +01:00
Sergio Pedri 768a9d39ed Streamline HighPerformance package project properties 2021-11-01 18:47:15 +01:00
Sergio Pedri 20f8ed1a59 Rename packages away from "Windows" name 2021-11-01 17:26:52 +01:00
Sergio Pedri 8b7c87284b Update namespaces from Microsoft.Toolkit to CommunityToolkit 2021-11-01 17:22:05 +01:00
Sergio Pedri b498321331 Rename folders/projects from Microsoft.Toolkit to CommunityToolkit 2021-11-01 17:07:47 +01:00