Как использовать генераторы исходного кода из CommunityToolkit.Mvvm для приложения .NET Framework 4.7.2 WPFC#

Место общения программистов C#
Ответить
Anonymous
 Как использовать генераторы исходного кода из CommunityToolkit.Mvvm для приложения .NET Framework 4.7.2 WPF

Сообщение Anonymous »

Недавно я тестировал библиотеку пользовательского интерфейса WPF (https://wpfui.lepo.co/). Я создал образец проекта, ориентированный на .NET 6.0. Пример проекта содержал несколько базовых моделей и моделей представления, и в этих файлах я обнаружил свойства, объявленные с использованием атрибута [ObservableProperty]. Мне очень понравилось, как это уменьшило объем кода, необходимого для простых свойств, поэтому я хотел использовать это для существующего проекта, ориентированного на .NET Framework 4.7.2.
Но я не знаю, как это вообще возможно и возможно ли это. Существующая информация, которую я нашел в Интернете, очень запутанна, но принятый ответ на этот вопрос звучит так, как будто это возможно: Roslyn Source Generator не генерирует исходный код в .net framework 4.7.2
Я попробовал следующее, но приложение не собирается:

Код: Выделить всё

using CommunityToolkit.Mvvm.ComponentModel;

namespace MatlogUtility
{
public partial class HeatListEntry : ObservableObject
{
[ObservableProperty]
private int? heatListId;

}
}

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Threading.Tasks;
using System.Windows;
using MatlogUtility.Models;

namespace MatlogUtility
{
public static class SqlQueries
{
public static List GetHeatList()
{
List heatList = new List();

string queryString = "SELECT a as heatListId FROM someTable;";

using (SqlConnection connection = new SqlConnection(Globals.ConnectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
var reader = command.ExecuteReader();
try
{
while (reader.Read())
{
heatList.Add(new HeatListEntry
{
HeatListId = reader["heatListId"] == DBNull.Value ? null : (int?)reader["heatListId"]
});
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}

return heatList;
}
}
}
Список ошибок показывает, что «HeatListEntry» не содержит определения HeatListId.
Я также пытался установить несколько пакетов NuGet, связанных с «Roslyn», например Microsoft.CodeAnasis.CSharp и Microsoft.CSharp, но это все равно не работает.
Возможно ли вообще то, что я пытаюсь сделать? Заранее спасибо, любые подсказки приветствуются!

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

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

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

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

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

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