- Пользовательские журналы входит. < /li>
Когда пользователь аутентифицирован показан список компаний. < /li>
Пользователь может выбрать между одной из компаний в списке. < /li>
В этот момент нам нужно сохранить CompanyDbname и компания выбранной компании (единственное место, которое мы обнаружили, чтобы хранить это было защищено >
У нас есть MainService (должен быть служба Singleton, потому что он содержит другие данные, соответствующие приложению) со свойством dbconnectionstricing, которое хранит строку подключения без какого -либо начального каталога и метода getCompanyConnectionString (), который добавляет компанию в DBConnectionString и Method GetCompanyConnectionString Возвращает компанию adbConnetionString. - Строка компании используется на всех фабриках, которые работают с базой данных.
Мы не можем получить компанию в рамках метода getCompanyConnectionString (), потому что ProtectedSessionSessionStorage - это служба, а MainService - это Singleton Service. < /li> < /ul>
public class MainService
{
private readonly ProtectedSessionStorage _protectedSessionStorage;
public string DbConnectionString{ get; set; } = "Data Source=localhost\SQLEXPRESS;Initial Catalog=;Integrated Security=True";
public SessionDataService(ProtectedSessionStorage protectedSessionStorage)
{
// ***The Error Happens Here *** - in the Injection of ProtectedSessionStorage
_protectedSessionStorage = protectedSessionStorage;
}
async Task GetCompanyConnectionString()
{
// Get CompanyDbName from ProtectedSessionStorage
var companyDbName = await _protectedSessionStorage.GetAsync("UserDb");
// Add to CompanyDbName to DbConnectionString (that is common to all sessions)
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(DbConnectionString);
builder.InitialCatalog = companyDbName;
// returns ConnectionString that we use by A session in the DataBaseFactory calls
return builder.ToString();
}
}
< /code>
builder.Services.AddSingleton();
Подробнее здесь: https://stackoverflow.com/questions/794 ... on-service
Мобильная версия