在 c# 中模拟静态类的最佳方法是什么。例如:
String appPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
我想模拟它,但需要将它包装在一个带有接口的类中,最好的方法是什么,这种方法是否适用于所有静态方法?
这种方法不会产生很多毫无意义的接口和类吗?
在 c# 中模拟静态类的最佳方法是什么。例如:
String appPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
我想模拟它,但需要将它包装在一个带有接口的类中,最好的方法是什么,这种方法是否适用于所有静态方法?
这种方法不会产生很多毫无意义的接口和类吗?
在 c# 中模拟静态类的最佳方法是什么
最好的方法是将那些静态调用隐藏在抽象后面。那些是可以伪造的。例如:
public interface IApplicationPhysicalPathProvider
{
string ApplicationPhysicalPath { get; }
}
public class AspNetApplicationPhysicalPathProvider : IApplicationPhysicalPathProvider
{
public string ApplicationPhysicalPath
{
get { return HostingEnvironment.ApplicationPhysicalPath; }
}
}
该建议适用于任何模拟框架,即使您根本不使用模拟框架。