Я изучаю c # и пытаюсь выполнить базовую регистрацию Console Application
, используя Three Tier Architecture
с Factory Method Design Pattern
.Я добавил все слои и реализовал всю логику, связанную с приложением входа в систему.Но когда я пытаюсь запустить код с помощью команды dotnet run
, он запрашивает ввод, после ввода выдает ошибку
Необработанное исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'DataAccessLogic, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль '.Система не может найти указанный файл.в BusinessLogic.User.getUserName () в FactoryMethod.Program.Main (String [] args) в C: \ Users \ xxx \ Desktop \ FactoryPatternSample \ FactoryMethodSampleApplication \ FactoryMethod \ Program.cs: строка 14
Хотя файл присутствует в BusinessLogic.User.getUserName ();
Код представлен здесь
ILogin.cs
public interface ILogin
{
bool AttemptLogin();
string getUserName();
}
User.cs
using System;
using DataAccessLogic;
namespace BusinessLogic
{
class User:ILogin
{
private string m_username;
private string m_password;
public User(string username, string password)
{
this.m_username = username;
this.m_password = password;
}
public bool AttemptLogin()
{
if(m_username.Equals("abc") && m_password.Equals("abc123"))
{
return true;
}
return false;
}
public string getUserName()
{
IGetDetails objectType = GetDetails.getDetails(m_username);
Console.WriteLine(objectType.getStudentName());
return objectType.getStudentName();
}
}
}
IGetDetails.cs
using System;
namespace DataAccessLogic
{
public interface IGetDetails
{
string getStudentName();
string getStudentId();
}
}
GetDetails.cs
namespace DataAccessLogic
{
public class GetDetails
{
public static IGetDetails getDetails(string username)
{
Console.WriteLine(username);
IGetDetails objectType = null;
objectType = new GetValue(username);
return objectType;
}
}
}
GetValue.cs
namespace DataAccessLogic
{
public class GetValue:IGetDetails
{
private string m_username = string.Empty;
public GetValue(string username)
{
this.m_username = username;
}
public string getStudentName()
{
return m_username;
}
public string getStudentId()
{
return "2205";
}
}
В программе .cs
ILogin loginType = Login.attemptLogin(email, password);
if(loginType.AttemptLogin())
{
Console.WriteLine("Name: "+ loginType.getUserName());
}
в loginType.getUserName () выдает ошибку, если я изменяю метод getUserName()
, чтобы он просто возвращал строку типа «привет», он выдает результат, но когда я пытаюсь вернуть строку из объекта IGetDetails
выдача ошибки.
Полный код источника Github
Любая помощь будет оценена.
Заранее спасибо.