Допустим, у меня есть 3 проекта: 1 Project - это веб-проект, который находится в .NET MVC3 1 Project - это логика бизнеса для приложения.Где на него ссылаются из веб-проекта.1 Внешний проект (MyTools), который имеет некоторые общие функции, такие как log4Net, реализации nHibernate.
Моя цель - реализовать определенный абстрактный класс, который есть в проекте MyTools в логике бизнеса.
public class Client : IEntity //Project Location: Buisness Logic Project
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ClientAO : BaseDAO<Client> //Project Location: Buisness Logic Project
{
}
public interface IEntity //Project Location: MyTools Logic Project
{
int Id { get; set; }
}
public abstract class BaseDAO<TEntity> where TEntity : IEntity, new() //Project Location: MyTools Logic Project
{
public static TEntity GetEntityById(int Id)
{
//Logic here to get object with ID = id
}
}
Проблема здесь: когда я пытаюсь использовать класс ClientAO, метод GetEntityById недоступен в веб-проекте, хотя на него ссылаются.Затем, если я переместлю всю логику в проекте MyTools в логику бизнеса, ничего не меняя, GetEntityById будет доступен.Я не могу понять, что происходит с этой проблемой.Есть ли проблема с модификаторами доступа?Насколько мне известно, установка класса для public, этот класс может быть доступен даже из другой сборки.
Спасибо