Return a class object from a dll C#
c#
Solution
A type is defined by its assembly. Two identical copies of `Foo.Bar.SomeClass` in two different assemblies are different types, and are not interchangeable - even if they have the same namespace etc.
You should reference the library, and re-use the type from there.
Problem
I have a dll in C# which returns a class object. DLL code: 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; } } } ``` I have another program "RunApp" in C# which has the same Person.cs class and tries to get the object from the above dll. RunApp Code: 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(); } } } ``` After this, when I compile the "RunApp" code, I get an Error: "Cannot implicitly convert type 'Extract.Person' to 'Ex.Person' ". I tried changing the namespace of the "RunApp" code from 'Ex' to 'Extract', but too the same Error: "Cannot implicitly convert type 'Extract.Person' to 'Extract.Person' ". I want to send values from the Extract.dll to RunApp program. I want to use this dll at multiple programs. Can anybody please help how to crack this problem?