Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Partial Classes across Projects

Is it possible to have partial classes across projects.

e.g. Project 1 has a Customer Class. Project2 which is an optional module adds to the customer class by attaching an order class, and utilising the original Customer Class.

like image 781
Traci Avatar asked Jan 25 '10 12:01

Traci


3 Answers

You cannot use the partial keyword to split the code for a class between projects. The partial keyword is a compiler trick; the compiler will output one single class out of the parts it finds, so all parts of the class must exist with the same binary file. Once the class is compiled, there is no trace left of it being a partial class.

If you want to extend an existing class you will either need to inherit it (if it is not sealed), or create your own new class that contains the classes that you wish to combine information from.

like image 170
Fredrik Mörk Avatar answered Nov 14 '22 07:11

Fredrik Mörk


No. A partial class must be compiled within the same context, i.e. assembly.

What you probably want to do is use Inheritance.

like image 41
Randolpho Avatar answered Nov 14 '22 09:11

Randolpho


partial classes are entirely a compiler construct - it basically concatenates the class definitions together, then compiles that. There is no concept of a 'partial class' in .net, so you cannot split partial classes across different compilation units (projects or assemblies)

like image 27
thecoop Avatar answered Nov 14 '22 07:11

thecoop