我在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。
有人可以帮忙解决这个问题吗?
答案 0 :(得分:7)
类型由其程序集定义。两个不同程序集中<{1}}的两个相同副本是不同的类型,并且不可互换 - 即使它们具有相同的命名空间等。
您应引用库,并从那里重新使用该类型。