我有一个基于接口的类,我希望有一些静态类作为属性.但是,我似乎无法找到一种方法来将静态类用作基于接口的类的实例属性.
public interface IHttpHelp
{
ItemsManager {get;set;}
}
public static class ItemsManager
{
//static methods
}
public class HttpHelper
{
public ItemsManager { get { return ItemsManager;}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,因为"ItemsManager像变量一样使用,但它是一个类型错误." 反正以这种方式使用课程吗?
为了深入了解我正在做什么 - 我有一些静态帮助程序类可以访问httpruntime和当前上下文.我目前直接使用它们,但想进入一个将用于IoC的容器类.我可以让它们成为实例类而忘记它,但我想知道有没有办法解决这个问题.
Tho*_*que 11
您不能使用这样的静态类,因为根据定义,您无法创建它的实例,因此您无法从属性返回它.改为使用单身人士:
public class ItemsManager
{
#region Singleton implementation
// Make constructor private to avoid instantiation from the outside
private ItemsManager()
{
}
// Create unique instance
private static readonly ItemsManager _instance = new ItemsManager();
// Expose unique instance
public static ItemsManager Instance
{
get { return _instance; }
}
#endregion
// instance methods
// ...
}
public class HttpHelper
{
public ItemsManager ItemsManager { get { return ItemsManager.Instance; } }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3919 次 |
| 最近记录: |