c# - 在 .NET 中使用来自另一个程序集的抽象类

标签 c# .net asp.net-mvc oop design-patterns

假设我有 3 个项目:

1 Web Project which is in .NET MVC3
2 Buisness Logic for the application. Where it is being referenced from the Web Project.
3 External Project (MyTools) which has some generic functionality like log4Net, nHibernate implementations.

我的目标是在业务逻辑的 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 方法,但它在 Web 项目中不可用。然后,如果我将 MyTools 项目中的所有逻辑移动到业务逻辑中而不更改任何内容,GetEntityById 将可用。我不明白这个问题发生了什么。访问修饰符有什么问题吗?据我所知,将一个类设置为公共(public)类,甚至可以从不同的程序集访问该类。

谢谢

最佳答案

如果将适当的引用添加到您的业务逻辑项目,这应该可以工作。

关于c# - 在 .NET 中使用来自另一个程序集的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032755/

相关文章:

asp.net-mvc - ASP.NET 5 中的 Web 应用程序

c# - 如何实现基于HTML响应内容的重试策略?

c# - 确定类型是否可转换为 IDictionary<string, object>,其中 Key 可以是任何类型

c# - Windows服务安装过程中的问题

javascript - 从 Mvc 模型渲染 div

.net - 在 2 个不同的项目/解决方案/应用程序上创建子域和共享身份验证

c# - 如何删除指定的图钉?

c# - protobuf.net 意外的子类型

c# - 使用 Array.Sort() 进行浮点排序

c# - .NET 的迷你 Web 服务器