Skip to content

Commit 871d0cd

Browse files
committed
.NET: Add RequiresDynamicCode to ITextSearch<TRecord> interface methods
Fixes IL3051 compilation errors by adding RequiresDynamicCode attributes to: - SearchAsync(string, TextSearchOptions<TRecord>?, CancellationToken) - GetTextSearchResultsAsync(string, TextSearchOptions<TRecord>?, CancellationToken) - GetSearchResultsAsync(string, TextSearchOptions<TRecord>?, CancellationToken) The generic ITextSearch<TRecord> interface accepts LINQ expressions via TextSearchOptions<TRecord>.Filter, which requires dynamic code generation for expression tree processing. This change ensures interface methods match their implementations' RequiresDynamicCode attributes. Resolves: Issue #10456 IL3051 interface mismatch errors Cherry-pick-safe: Interface-only change, no implementation logic
1 parent 3f75d14 commit 871d0cd

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearch.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public interface ITextSearch<TRecord>
1919
/// <param name="query">What to search for.</param>
2020
/// <param name="searchOptions">Options used when executing a text search.</param>
2121
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
22+
[RequiresDynamicCode("LINQ filtering over generic types requires dynamic code generation for expression trees.")]
2223
Task<KernelSearchResults<string>> SearchAsync(
2324
string query,
2425
TextSearchOptions<TRecord>? searchOptions = null,
@@ -30,6 +31,7 @@ Task<KernelSearchResults<string>> SearchAsync(
3031
/// <param name="query">What to search for.</param>
3132
/// <param name="searchOptions">Options used when executing a text search.</param>
3233
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
34+
[RequiresDynamicCode("LINQ filtering over generic types requires dynamic code generation for expression trees.")]
3335
Task<KernelSearchResults<TextSearchResult>> GetTextSearchResultsAsync(
3436
string query,
3537
TextSearchOptions<TRecord>? searchOptions = null,
@@ -41,6 +43,7 @@ Task<KernelSearchResults<TextSearchResult>> GetTextSearchResultsAsync(
4143
/// <param name="query">What to search for.</param>
4244
/// <param name="searchOptions">Options used when executing a text search.</param>
4345
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
46+
[RequiresDynamicCode("LINQ filtering over generic types requires dynamic code generation for expression trees.")]
4447
Task<KernelSearchResults<object>> GetSearchResultsAsync(
4548
string query,
4649
TextSearchOptions<TRecord>? searchOptions = null,

0 commit comments

Comments
 (0)