使用.net中另一个程序集的抽象类
本文关键字:抽象类 程序集 另一个 net 使用 | 更新日期: 2023-09-27 18:05:34
假设我有三个项目:
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,这个类甚至可以从不同的程序集访问。
谢谢
如果将适当的引用添加到您的业务逻辑项目中,则应该可以正常工作。
GetEntityById是一个静态方法。也许第一次尝试使用该方法是ClientDAO的一个实例,第二次尝试使用类?
无论如何,为什么这个方法是静态的?