0

在 c# 中模拟静态类的最佳方法是什么。例如:

String appPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;

我想模拟它,但需要将它包装在一个带有接口的类中,最好的方法是什么,这种方法是否适用于所有静态方法?

这种方法不会产生很多毫无意义的接口和类吗?

4

1 回答 1

5

在 c# 中模拟静态类的最佳方法是什么

最好的方法是将那些静态调用隐藏在抽象后面。那些是可以伪造的。例如:

public interface IApplicationPhysicalPathProvider
{
    string ApplicationPhysicalPath { get; }
}

public class AspNetApplicationPhysicalPathProvider : IApplicationPhysicalPathProvider
{
    public string ApplicationPhysicalPath 
    {
        get { return HostingEnvironment.ApplicationPhysicalPath; }
    }
}

该建议适用于任何模拟框架,即使您根本不使用模拟框架。

于 2012-06-25T10:04:21.830 回答