Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 是否可以从WCF服务中的静态构造函数调用实例方法?_.net_Wcf_Static Constructor - Fatal编程技术网

.net 是否可以从WCF服务中的静态构造函数调用实例方法?

.net 是否可以从WCF服务中的静态构造函数调用实例方法?,.net,wcf,static-constructor,.net,Wcf,Static Constructor,是否可以从WCF服务中的静态构造函数调用实例方法?是否有类似于当前上下文的东西可以让我获得MyService的当前实例 public class MyService : IMyService { static MyService() { //how to call Func? } private void Func() { } } 编辑: 这个问题是WCF问题,而不是关于从静态方法调用实例方法的简单语言问题。以下是web应用程序

是否可以从WCF服务中的静态构造函数调用实例方法?是否有类似于当前上下文的东西可以让我获得MyService的当前实例

public class MyService : IMyService
{
    static MyService()
    {
        //how to call Func?
    }

    private void Func()
    {
    }
}
编辑:

这个问题是WCF问题,而不是关于从静态方法调用实例方法的简单语言问题。以下是web应用程序中类似情况的示例:

public class MyPage : Page
{
    static MyPage()
    {
        var page = (MyPage)HttpContext.Current.Handler;
        page.Func();
    }

    private void Func()
    {
    }

}

因此,我希望在WCF中,虽然对服务的调用存在一些全局上下文,其中包含当前正在执行的MyService实例。

在这里取出WCF服务-这不是WCF qwuestion,而是一个纯粹的基本C语言问题。与类作为一种服务无关

答案是否定的


静态构造函数无权调用实例函数-它没有实例的引用。更改类设置,使其不再是必需的。设计错误。很可能代码不应该是静态构造函数,而是在实例构造函数中。

不可能从静态构造函数调用实例方法。您不知道CLR何时会调用此静态构造函数。您所知道的是,它将在创建此对象的任何实例之前被调用。如果没有对象的实例,就不能调用实例方法。

嗯,这是可能的。你能解释一下你为什么需要这个吗

public class MyService : IMyService
    {
        static MyService()
        {
            new MyService().Func();
        }

        private void Func()
        {
        }
    }