您的位置:首页 >> Web开发 >> ASP.NET >> ASP.Net技巧 >> 正文
ASP.Net技巧 RSS
 

ASP.NET 2.0 WebService中传递DataTable参考

http://www.rdxx.com 06年08月21日 00:00 我要投稿

关键词: 参考 , WebService , DataTable , 传递 , ASP.NET , .NET , Tab , ASP , Web
 

  在2.0正式版发布之前,就满天的看到关于DataTable支持序列化的新特性宣传,满以为从此以后使用DataTable就和DataSet一样方便了,结果在应用项目的时候才发现并非那么回事。
  DataTable是支持序列化了,但是微软并没有把他做的特别方便,还需要我们自己来做一些工作之后才能够在WebService里面传递DataTable,否则在引用DataTable的时候会发现DataTable变成了一个什么Proxy类型。
  首先编写类DataTableSchemaImporterExtension,代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization.Advanced;
using System.Collections;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Xml;
using System.Data;

namespace Xrinehart.Tools.WebService.SchemaImporter
{
    class DataTableSchemaImporterExtension : SchemaImporterExtension
    {

        // DataTableSchemaImporterExtension is used for WebServices, it is used to recognize the schema for DataTable within wsdl

        Hashtable importedTypes = new Hashtable();

 

        public override string ImportSchemaType(string name, string schemaNamespace, XmlSchemaObject context, XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeGenerationOptions options, CodeDomProvider codeProvider)
        {

            IList values = schemas.GetSchemas(schemaNamespace);

            if (values.Count != 1)
            {

                return null;

            }

            XmlSchema schema = values[0] as XmlSchema;

            if (schema == null)

                return null;

            XmlSchemaType type = (XmlSchemaType)schema.SchemaTypes[new XmlQualifiedName(name, schemaNamespace)];

            return ImportSchemaType(type, context, schemas, importer, compileUnit, mainNamespace, options, codeProvider);

        }

 

        public override string ImportSchemaType(XmlSchemaType type, XmlSchemaObject context, XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeGenerationOptions options, CodeDomProvider codeProvider)
        {

      &nb

9 7 3 1 2 3 4 4 8 :


 
 
标签: 参考 , WebService , DataTable , 传递 , ASP.NET , .NET , Tab , ASP , Web 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站