C# c语言中的静态接口#

C# c语言中的静态接口#,c#,interface,C#,Interface,抱歉,这可能是重复的,但在另一个静态接口中,他们提到了我没有使用的泛型 我想为我的应用程序提供一个快速简单的记录器,我想我可以避免使用静态元素的单例。 我希望保留该接口,以便以后可以更改为另一个日志记录包。接口对我来说(我可能错了)是实现“facade”特性的一种方式 我觉得我忽略了什么。 如能朝正确方向轻轻推动,将不胜感激。(希望更清楚一点) 您希望将单体与外观结合起来。有点像服务定位器。i、 e.创建一个获得与接口相同方法的单例,然后将接口作为单例分配给facade .C#不支持静态继承或静

抱歉,这可能是重复的,但在另一个静态接口中,他们提到了我没有使用的泛型

我想为我的应用程序提供一个快速简单的记录器,我想我可以避免使用静态元素的单例。 我希望保留该接口,以便以后可以更改为另一个日志记录包。接口对我来说(我可能错了)是实现“facade”特性的一种方式

我觉得我忽略了什么。 如能朝正确方向轻轻推动,将不胜感激。(希望更清楚一点)


您希望将单体与外观结合起来。有点像服务定位器。i、 e.创建一个获得与接口相同方法的单例,然后将接口作为单例分配给facade


.

C#不支持静态继承或静态接口实现。静态变量只是单例的一种形式,不管从哪个角度看,都可以使用单例,或者最好使用DI容器来注入记录器依赖项。

现在还不清楚您想要实现什么,或者“静态接口”将在哪里发挥作用。。。请编辑你的问题以澄清它。你们触发得很快!干杯汉克斯·杰戈芬,这是我一开始写的。但后来我想,如果我只使用静态方法,情况会简化。那么,没有其他(更简单的)方法可以做到这一点?
public interface Ilogger
{
    void Log(string data, out DateTime datetime, out string uid);
}

public class Logger : Ilogger
{
    private static TraceSource AppTrace = new TraceSource("RD", SourceLevels.All);

    static Logger ()
    {
       AppTrace.Listeners.Clear();
       AppTrace.Listeners.Add(new DelimitedListTraceListener("RD.log"));
    }

    static void Log(string data, out DateTime datetime, out string uid)
    {
        datetime = DateTime.Now;
        uid = Guid.NewGuid().ToString();

        AppTrace.TraceInformation(datetime + ";" + uid + ";" + data);
    }
}