Returning DataTables in WCF/.NET

前端 未结 8 1600
广开言路
广开言路 2020-12-01 05:00

I have a WCF service from which I want to return a DataTable. I know that this is often a highly-debated topic, as far as whether or not returning DataTables is a good pract

8条回答
  •  日久生厌
    2020-12-01 05:51

    For anyone having similar problems, I have solved my issue. It was several-fold.

    • As Darren suggested and Paul backed up, the Max..Size properties in the configuration needed to be enlarged. The SvcTraceViewer utility helped in determining this, but it still does not always give the most helpful error messages.
    • It also appears that when the Service Reference is updated on the client side, the configuration will sometimes not update properly (e.g. Changing config values on the server will not always properly update on the client. I had to go in and change the Max..Size properties multiple times on both the client and server sides in the course of my debugging)
    • For a DataTable to be serializable, it needs to be given a name. The default constructor does not give the table a name, so:

      return new DataTable();
      

      will not be serializable, while:

      return new DataTable("someName");
      

      will name the table whatever is passed as the parameter.

      Note that a table can be given a name at any time by assigning a string to the TableName property of the DataTable.

      var table = new DataTable();
      table.TableName = "someName";
      

    Hopefully that will help someone.

提交回复
热议问题