Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
C# ASP.net和WCF关于“的一些澄清”;压倒一切;_C#_Asp.net_Wcf - Fatal编程技术网

C# ASP.net和WCF关于“的一些澄清”;压倒一切;

C# ASP.net和WCF关于“的一些澄清”;压倒一切;,c#,asp.net,wcf,C#,Asp.net,Wcf,最近我遇到了一些面试问题。面试官要求面试官给出详细的答案 1) 我们是否可以覆盖WCF服务(它不是OOPS覆盖)?请在两端解释原因。(与WCF相关) 2) 我们可以覆盖页面事件(Page_Load())吗?解释原因。(与ASP.NET相关) 3) 除了用户偏好之外,Pre_Init(page)事件的主要职责是什么 设置,剥皮 4) 我们能覆盖静态方法吗?解释原因。(C#related) 有人能帮我理解原因吗 您无法真正覆盖WCF服务操作。如果您的服务契约类有两个名称相同但参数不同的服务操作方法(

最近我遇到了一些面试问题。面试官要求面试官给出详细的答案

1) 我们是否可以覆盖WCF服务(它不是OOPS覆盖)?请在两端解释原因。(与WCF相关)

2) 我们可以覆盖页面事件(Page_Load())吗?解释原因。(与ASP.NET相关)

3) 除了用户偏好之外,Pre_Init(page)事件的主要职责是什么 设置,剥皮

4) 我们能覆盖静态方法吗?解释原因。(C#related)

有人能帮我理解原因吗

  • 您无法真正覆盖WCF服务操作。如果您的服务契约类有两个名称相同但参数不同的服务操作方法(即合法的C#重载),则WCF将在服务启动时抛出一个
    invalidoOperationException
    。如果确实要执行此操作,可以在
    OperationContract
    属性中更改其中一个方法的公开操作名称:

    [OperationContract(Name = "GetDataWithString")]
    public string GetData(string input)
    {
       ...
    }
    
    [OperationContract(Name = "GetDataWithNumber")]
    public string GetData(int input)
    {
       ...
    }
    
  • 您可以覆盖ASP.Net中的页面事件;这是非常广泛使用的,通常是非常关键的。您可以显式重写自定义页面继承自的
    页面
    类中的方法,也可以以ASP.Net知道它们将被视为重写的方式命名方法。例如,使用下面的签名在页面的代码隐藏中声明一个方法将自动覆盖page_Init方法

    void Page_Init(object sender, EventArgs e)
    
  • Page\u Init
    方法是ASP.Net开始跟踪ViewState的地方。这意味着对任何页面控件所做的任何操作现在都会在ViewState
    StateBag
    中标记为脏,因此将进行base-64编码,并在ViewState隐藏输入字段中向下发送到客户端,从而在回发时发送回服务器。在跟踪ViewState之前更改控件的值将有助于阻止ViewState变得过大。有关更多详细信息,请参阅

  • 只有类实例方法可以标记为
    virtual
    ,因为创建的编译器附加到类实例。静态类成员不是附加到实例,而是附加到类本身,因此无法重写它们。更详细地解释了这一点,并给出了一些解决方法