Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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# 配置.NET Web服务_C#_Asp.net_.net_Web Services - Fatal编程技术网

C# 配置.NET Web服务

C# 配置.NET Web服务,c#,asp.net,.net,web-services,C#,Asp.net,.net,Web Services,我通过在VisualStudio中创建新站点和添加新web服务,使用C#创建了简单的web服务。我还在IIS8中为它创建了一个站点,并在那个里放置了服务。该服务工作正常,返回XML作为答案,但现在我需要返回JSON格式或更好的格式——这两种格式在单独的地址中可用。如何做到这一点?我应该用web.config文件管理一些东西,还是必须进行一些编码 web.config文件内容: <configuration> <system.web> <compi

我通过在VisualStudio中创建新站点和添加新web服务,使用C#创建了简单的web服务。我还在IIS8中为它创建了一个站点,并在那个里放置了服务。该服务工作正常,返回XML作为答案,但现在我需要返回JSON格式或更好的格式——这两种格式在单独的地址中可用。如何做到这一点?我应该用web.config文件管理一些东西,还是必须进行一些编码

web.config文件内容:

<configuration>
    <system.web>
      <compilation targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>

</configuration>

您应该通过使用
ScriptMethod
属性对web方法进行修饰来更改其响应格式,并使用
JavaScriptSerializer
返回数据。文章有一个完整的例子,我将在下面发布:

public class MyServiceClass
{
    [WebMethod]
    public Employee[] GetEmployessXML()
    {
        Employee[] emps = new Employee[] {
        new Employee()
        {
            Id=101,
            Name="Nitin",
            Salary=10000
        },
        new Employee()
        {
            Id=102,
            Name="Dinesh",
            Salary=100000
        }
        };
        return emps;
    }
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string GetEmployessJSON()
    {
        Employee[] emps = new Employee[] {
        new Employee()
        {
            Id=101,
            Name="Nitin",
            Salary=10000
        },
        new Employee()
        {
            Id=102,
            Name="Dinesh",
            Salary=100000
        }
        };
        return new JavaScriptSerializer().Serialize(emps);
    }
}