各位大哥大姐,小弟用C#做一个ActiveX控件,想嵌入浏览器运行,并访问Access数据库.但在加入ODBC数据源后,提示
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3341,9): warning : 类型库导出程序在处理“WindowsFormDB.DataSet1+PartNumberDataTable, WindowsFormDB”时发出警告。警告: 类型库导出程序遇到从泛型类派生并且未标记为 [ClassInterface(ClassInterfaceType.None)] 的类型。无法公开这种类型的类接口。请考虑用 [ClassInterface(ClassInterfaceType.None)] 标记该类型,并使用 ComDefaultInterface 特性向 COM 公开某个显式接口作为默认接口。
搞不定啊,很着急,希望哪位高人不吝赐教

解决方案 »

  1.   

    调试信息
    ------ 已启动全部重新生成: 项目: WindowsFormDB, 配置: Debug Any CPU ------
      WindowsFormDB -> D:\我的文档\Visual Studio 2010\WindowsFormDB\WindowsFormDB\WindowsFormDB\bin\Debug\WindowsFormDB.dll
    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3341,9): warning : 类型库导出程序在处理“WindowsFormDB.DataSet1+PartNumberDataTable, WindowsFormDB”时发出警告。警告: 类型库导出程序遇到从泛型类派生并且未标记为 [ClassInterface(ClassInterfaceType.None)] 的类型。无法公开这种类型的类接口。请考虑用 [ClassInterface(ClassInterfaceType.None)] 标记该类型,并使用 ComDefaultInterface 特性向 COM 公开某个显式接口作为默认接口。
    ========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
      

  2.   

    没有添加ODBC数据源的时候,ActiveX控件运行是正常的
      

  3.   

    主程序窗口部分代码
    namespace WindowsFormDB
    {
        [Guid("E9F593EC-C864-4238-82F1-07BA1D4ECCA8")]
        [ClassInterface(ClassInterfaceType.None)]    public partial class GearPro : UserControl
        {
    .......
         }
      

  4.   

    可能是系统尝试自动导出数据集相关类。楼主可以这样试一下:
    双击DataSet1.xsd打开数据集设计器,然后点一下空白处,再在属性面板把数据集的modifier属性改为Internal
    然后再把所有的DataSet1实例的访问级别改为Internal
      

  5.   

    高手就是高手,多谢foreachif,结贴给分.