NpgsqlConnectionStringBuilder не содержит определения PasswordAsSecureString

Рейтинг: 0Ответов: 0Опубликовано: 27.04.2023

Создаю консольное приложение на C# для работы с БД PostgreSQL с помощью пакета Npgsql. Пароль вводится из консоли и передаётся в конструктор класса Database в виде SecureString из встроенной библиотеки System.Security.

В классе Database создаётся экземпляр класса NpgsqlConnectionStringBuilder у которого должно быть свойство PasswordAsSecureString, но компилятор говорит, что его нет.

using Npgsql;
using System.Security;

    // Класс для работы с базой данных
    class Database : IDisposable
    {
        // Поле для хранения объекта подключения
        private NpgsqlConnection conn;

        // Конструктор класса, который принимает параметры подключения
        public Database(string host, int port, string username, SecureString password, string database)
        {
            // Создаем объект NpgsqlConnectionStringBuilder с параметрами подключения
            NpgsqlConnectionStringBuilder builder = new NpgsqlConnectionStringBuilder();
            builder.Host = host; // адрес сервера
            builder.Port = port; // порт сервера
            builder.Database = database; // имя базы данных
            builder.Username = username; // имя пользователя
            builder.PasswordAsSecureString = password; // пароль в виде SecureString

            // Создаем объект подключения
            conn = new NpgsqlConnection(builder);
            conn.Open();
        }
    }

Файл проекта

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Npgsql" Version="7.0.4" />
  </ItemGroup>

</Project>

Текст ошибки

Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка CS1061 "NpgsqlConnectionStringBuilder" не содержит определения "PasswordAsSecureString", и не удалось найти доступный метод расширения "PasswordAsSecureString", принимающий тип "NpgsqlConnectionStringBuilder" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). TestDB D:\!!!E\CSharp\TestDB\TestDB\Database.cs 21 Активные

(Код по большей части сгенерирован нейросетью. Если такого свойства не существует, то хотелось бы узнать об альтернативных решениях данной проблемы.)

Ответы

Ответов пока нет.