从dll C#返回一个类对象

时间:2012-06-18 08:34:28

标签: c#

我在C#中有一个dll,它返回一个类对象。

DLL代码:

Person.cs:

namespace Extract
{
    public class Person
    {
        public string name;
        public string address;
        public int age;
        public int salary;
    }
}

的Class1.cs

namespace Extract
{
    public class MClass
    {
        public static Person GetPerson()
        {
            Person p = new Person();
            p.name = "Deepak";
            p.address = "Bangalore";
            p.age = 30;
            p.salary = 20000;
            return p;
        }
    }
}

我在C#中有另一个程序“RunApp”,它有相同的Person.cs类,并尝试从上面的dll中获取对象。

RunApp代码:

Person.cs:

namespace Extract
{
    public class Person
    {
        public string name;
        public string address;
        public int age;
        public int salary;
    }
}

Form1.cs中:

namespace Ex
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Person mem = MClass.GetPerson();
        }
    }
}

在此之后,当我编译“RunApp”代码时,出现错误:

  

“无法将类型'Extract.Person'隐式转换为'Ex.Person'”。一世   尝试将“RunApp”代码的命名空间从“Ex”更改为   'Extract',但过于相同错误:“无法隐式转换类型   'Extract.Person'到'Extract.Person'“。

我想将Extract.dll中的值发送到RunApp程序。我想在多个程序中使用这个dll。

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:7)

类型由其程序集定义。两个不同程序集中<{1}}的两个相同副本是不同的类型,并且不可互换 - 即使它们具有相同的命名空间等。

您应引用库,并从那里重新使用该类型。