是否可以将方法限制为仅在友好程序集中使用虚拟方法?
Is it possible to restrict methods to virtual ONLY in friendly assemblies?
对于单元测试,我希望能够以类似于 InternalsVisibleTo.
的方式将方法仅针对特定程序集转换为虚拟方法
例如,如果我在装配 Animals:
public void methodDog()
{
}
我想假装成:
public virtual void methodDog()
{
}
..在程序集内 AnimalsTests
我们如何在不使用 AOP 的情况下将某些方法标记为仅当特定程序集访问时才为虚拟方法?
据我所知这是不可能的,但你可以考虑:
创建接口并在测试时实现它,或者;
创建内部虚方法,由你的public方法调用并覆盖内部虚方法,例如:
public void methodDog()
{
methodDogInternal();
}
internal virtual void methodDogInternal()
{
}
对于单元测试,我希望能够以类似于 InternalsVisibleTo.
的方式将方法仅针对特定程序集转换为虚拟方法例如,如果我在装配 Animals:
public void methodDog()
{
}
我想假装成:
public virtual void methodDog()
{
}
..在程序集内 AnimalsTests
我们如何在不使用 AOP 的情况下将某些方法标记为仅当特定程序集访问时才为虚拟方法?
据我所知这是不可能的,但你可以考虑:
创建接口并在测试时实现它,或者;
创建内部虚方法,由你的public方法调用并覆盖内部虚方法,例如:
public void methodDog()
{
methodDogInternal();
}
internal virtual void methodDogInternal()
{
}