Как поделиться классами/записями с атрибутом Microsoft.AspNetCore.Mvc.FromQuery в проектах клиента .NET MAUI и сервера AC#

Место общения программистов C#
Ответить
Anonymous
 Как поделиться классами/записями с атрибутом Microsoft.AspNetCore.Mvc.FromQuery в проектах клиента .NET MAUI и сервера A

Сообщение Anonymous »

Следующий класс:
public abstract record TasksTransactions
{

public abstract record RetrievingOfSelection
{

public const string URN_PATH = "/api/tasks/selection";

public record QueryParameters
{

public ForcedFiltering? forcedFiltering { get; set; }

public record ForcedFiltering
{

[Microsoft.AspNetCore.Mvc.FromQuery(Name = "ff.s")]
public required TaskGateway.SelectionRetrieving.RequestParameters.ForcedFiltering.ProgressStatues progressStatus { get; set; }

}

public OptionalFiltering? optionalFiltering { get; set; }

public record OptionalFiltering
{

[Microsoft.AspNetCore.Mvc.FromQuery(Name = "of.sd")]
public DateOnly? startingDate { get; set; }

[Microsoft.AspNetCore.Mvc.FromQuery(Name = "of.ed")]
public DateOnly? endingDate { get; set; }

[Microsoft.AspNetCore.Mvc.FromQuery(Name = "of.sr")]
public string? searchingByFullOrPartialTitleOrDescription { get; set; }
}

}

}

}

находится в проекте C# (назовем его «Общий») со следующим файлом .csproj:



net9.0
enable
enable








Вышеуказанный класс должен быть доступен из обоих следующих проектов:
  • .NET MAUI-клиент
  • AST .NET Backend
Я добавлю файлы .csproj обоих из них в конце вопроса.
/>В настоящее время Microsoft.AspNetCore недоступен из «Общего» проекта:

Невозможно разрешить символ «AspNetCore»

но если временно закомментировать все случаи использования `Microsoft.AspNetCore`, мое приложение будет работать.
Установка Microsoft.AspNetCore.Mvc в «Общий» проект:



net9.0
enable
enable












Теперь Microsoft.AspNetCore доступен из «Общего» проекта, но если попытаться построить решение, произойдет сбой с:

Код серьезности Описание Состояние подавления строки файла проекта
Ошибка (активная) CS0234
Тип или имя пространства имен «ApplicationPartAttribute» не указаны существуют в пространстве имен «Microsoft.AspNetCore.Mvc.ApplicationParts» (вам не хватает ссылки на сборку?) Клиент (net9.0-ios) D:\XXX\Implementation\Elements\Client\obj\Debug\net9.0-ios\iossimulator-x64\Client.MvcApplicationPartsAssemblyInfo.cs 14

Изображение

Это позволяет удалить Microsoft.AspNetCore и временно закомментировать все случаи использования Microsoft.AspNetCore, решение будет снова построено без ошибок. Как это исправить?
Приложение
.csproj Файл клиентского проекта
В основном создан Visual Studio для гибридного приложения .NET MAUI + Blazor.



net9.0-maccatalyst;net9.0-ios;net9.0-android
$(TargetFrameworks);net9.0-windows10.0.19041.0


Exe
Client
true
true
enable
false
enable


Client


com.companyname.client
2302D388-EFAC-4FCF-A8B6-3100441C5C7E


1.0
1

14.2
14.0
24.0
10.0.17763.0
10.0.17763.0
6.5


false









































.csproj Файл серверного проекта
В основном создан Visual Studio для серверного приложения ASP .NET.



net9.0
enable
enable
ae619771-2592-4d7a-82ae-f1c264e1968e
Linux
..\..\..

















Подробнее здесь: https://stackoverflow.com/questions/798 ... -attribute
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»