views:

162

answers:

3

Hi,

I have the need to make a call to the System.Xaml library in .NET 4.0. Is it possible to make a call to this library if your project is targeted to 3.5?

+4  A: 

No. You'll need to target your project to run in .NET 4, and to use the CLR v4, in order to use .NET 4 assemblies.


On a different note - there is no real advantage here. Just change your application to target .NET 4. If you are going to add a dependency on the .NET 4 framework assemblies, you might as well just target .NET 4 in the first place...

Reed Copsey
The problem is, at the moment i only have VS2008, and i need a particular feature of Xaml (Serialization) in .net 4.0. I was hoping to be able to load it with reflection or something.
mrwayne
You can get hold of VS2010 very soon. Re-shuffle the projects' order.
Hamish Grubijan
@mrwayne: You can always use VS 2010 Express (available now): http://www.microsoft.com/express/
Reed Copsey
Yeah, unfortunately its a bit more complicated than that, i'm in a work place that would need the entire development team to be upgraded, which means the software needs to be backwards compatibility tested moving to .net 4 ect ect.
mrwayne
@mrwayne: If you're working in that type of environment, adding a dep. on .NET 4 is probably not a good idea, either. I'd wait until your company does a full migration to .NET 4.
Reed Copsey
+1  A: 

No, you can't the assembly is mapped differently, one thing that you could do but that's a pain is to create a type in memory that reassembles your net 4.0 dll.

You could use CECIL to get IL instructions.

If you don't know IL very much don't even try to do it.

BartoszAdamczewski
A: 

This question is similar to "how can I use a .NET 2 assembly in .NET 1.x application". It is impossible to add the assembly for new CLR as a reference, but like Hamish pointed out, inter process communication may help.

Lex Li