Skip to content

Commit b966943

Browse files
authored
Add DynamicAccessedMembers attributes to BindingListEx methods (#1087)
* Add DynamicAccessedMembers attributes to BindingListEx methods * Update API reference
1 parent b93a6b9 commit b966943

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

src/DynamicData.Tests/API/ApiApprovalTests.DynamicDataTests.DotNet9_0.verified.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,12 +323,12 @@ namespace DynamicData.Binding
323323
public static class BindingListEx
324324
{
325325
public static System.IObservable<System.Reactive.EventPattern<System.ComponentModel.ListChangedEventArgs>> ObserveCollectionChanges(this System.ComponentModel.IBindingList source) { }
326-
public static System.IObservable<DynamicData.IChangeSet<T>> ToObservableChangeSet<T>(this System.ComponentModel.BindingList<T> source)
326+
public static System.IObservable<DynamicData.IChangeSet<T>> ToObservableChangeSet<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] T>(this System.ComponentModel.BindingList<T> source)
327327
where T : notnull { }
328328
public static System.IObservable<DynamicData.IChangeSet<T>> ToObservableChangeSet<TCollection, T>(this TCollection source)
329329
where TCollection : System.ComponentModel.IBindingList, System.Collections.Generic.IEnumerable<T>
330330
where T : notnull { }
331-
public static System.IObservable<DynamicData.IChangeSet<TObject, TKey>> ToObservableChangeSet<TObject, TKey>(this System.ComponentModel.BindingList<TObject> source, System.Func<TObject, TKey> keySelector)
331+
public static System.IObservable<DynamicData.IChangeSet<TObject, TKey>> ToObservableChangeSet<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] TObject, TKey>(this System.ComponentModel.BindingList<TObject> source, System.Func<TObject, TKey> keySelector)
332332
where TObject : notnull
333333
where TKey : notnull { }
334334
}

src/DynamicData/Binding/BindingListEx.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System.Collections.ObjectModel;
66
using System.ComponentModel;
7+
using System.Diagnostics.CodeAnalysis;
78
using System.Reactive;
89
using System.Reactive.Linq;
910

@@ -30,7 +31,7 @@ public static IObservable<EventPattern<ListChangedEventArgs>> ObserveCollectionC
3031
/// <param name="source">The source.</param>
3132
/// <returns>An observable which emits change set values.</returns>
3233
/// <exception cref="ArgumentNullException">source.</exception>
33-
public static IObservable<IChangeSet<T>> ToObservableChangeSet<T>(this BindingList<T> source)
34+
public static IObservable<IChangeSet<T>> ToObservableChangeSet<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this BindingList<T> source)
3435
where T : notnull
3536
{
3637
source.ThrowArgumentNullExceptionIfNull(nameof(source));
@@ -50,7 +51,7 @@ public static IObservable<IChangeSet<T>> ToObservableChangeSet<T>(this BindingLi
5051
/// <exception cref="ArgumentNullException">source
5152
/// or
5253
/// keySelector.</exception>
53-
public static IObservable<IChangeSet<TObject, TKey>> ToObservableChangeSet<TObject, TKey>(this BindingList<TObject> source, Func<TObject, TKey> keySelector)
54+
public static IObservable<IChangeSet<TObject, TKey>> ToObservableChangeSet<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] TObject, TKey>(this BindingList<TObject> source, Func<TObject, TKey> keySelector)
5455
where TObject : notnull
5556
where TKey : notnull
5657
{
@@ -132,7 +133,7 @@ public static IObservable<IChangeSet<T>> ToObservableChangeSet<TCollection, T>(t
132133
});
133134
}
134135

135-
internal static void Clone<T>(this BindingList<T> source, IEnumerable<Change<T>> changes)
136+
internal static void Clone<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this BindingList<T> source, IEnumerable<Change<T>> changes)
136137
where T : notnull
137138
{
138139
// ** Copied from ListEx for binding list specific changes
@@ -145,7 +146,7 @@ internal static void Clone<T>(this BindingList<T> source, IEnumerable<Change<T>>
145146
}
146147
}
147148

148-
private static void Clone<T>(this BindingList<T> source, Change<T> item, IEqualityComparer<T> equalityComparer)
149+
private static void Clone<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this BindingList<T> source, Change<T> item, IEqualityComparer<T> equalityComparer)
149150
where T : notnull
150151
{
151152
switch (item.Reason)

src/DynamicData/DynamicData.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>netstandard2.0;net462;net8.0;net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
3+
<TargetFrameworks>netstandard2.0;net462;net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
44
<GenerateDocumentationFile>true</GenerateDocumentationFile>
5+
<IsAotCompatible>true</IsAotCompatible>
56
<IsPackable>true</IsPackable>
67
<ImplicitUsings>enable</ImplicitUsings>
78
</PropertyGroup>

0 commit comments

Comments
 (0)