使用dll时ASP c#web应用程序错误

时间:2014-02-03 15:17:53

标签: c# asp.net vb.net dll dllimport

我正在尝试在c#web应用程序中导入一个dll。我遵循的步骤:

  1. 转到项目中的添加引用并浏览dll并选择确定
  2. 在代码后面,添加“使用mydll;”
  3. 我能够看到大部分功能和变量但有些缺失。我在VB Web应用程序中尝试了相同的方法,并在那里工作正常。下面是我在C#中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Diagnostics;
    using PPDSDUALLib; <-- My dll imported.
    
    PPDSDUALLib.Property oProp;
    oProp = oComp.Property[i]; <-- error line, Component doesn't contain definition for Property.
    

    但是在VB Web应用程序中也能正常工作。

    编辑:

    感谢所有回复。

    我在“对象浏览器”中查看了详细结构,并且知道'Property'是oComp的默认值,因此在c#中不可见。 我认为c#和VB导入dll的方式有所不同(对此不太确定)。 VB显示默认属性,而c#将其转换为索引。我能够使用

    显示第一个值
    oComp[0].Name;
    

    但是如果我将索引更改为0以外的任何值,则会出错。请帮忙。

1 个答案:

答案 0 :(得分:0)

我找到了答案,这是变量类型中的错误。

它必须是自定义的枚举类型而不是int。

以下代码是正确的:

for (i = 0; i < oComp.PropertyCount-1; i++)
        {
            j = (enum_type)i;

            String name = oComp[j].Name;
            s = name;

            Debug.WriteLine("Name = " + s);

        }//end of for

感谢所有回复。