PDA

View Full Version : Using LINQ with script writing


=XIII=Wedge
10-04-2011, 06:37 PM
Hi all,

I was writing a small script the other day and decided to use a little LINQ.

However, when I loaded the mission in the FMB and ran compile in the scripts window I got a compiler warning about not recognising LINQ.

I was under the impression that the game was compiled with .NET 4.0, so this has got me stumped.

Any ideas?

P.S - I wanted to create an assembly with some common routines rather than having to add them to every script. Have the same problem here as I do not know where to put the assembly for it to be referenced by the script file.

Haven't tried the GAC, but wanted to avoid it if possible.

FG28_Kodiak
10-04-2011, 06:44 PM
you must set a reference to System.Linq.dll the before loading the namespaces, but may be you need others dlls too.
Example:

//$reference System.Data.dll
//$reference System.Linq.dll
//$reference System.XML.dll
using System;
using System.Data;
using System.Linq;

=XIII=Wedge
10-04-2011, 06:51 PM
Thanks for the reply Kodiak.

I had added the using statements and the project compile successfully in VS2010 Express.

However, it would not compile in FMB when right clicking 'Compile' on the scripting window.

FG28_Kodiak
10-04-2011, 06:58 PM
There is no need to "compile" it in FMB.

Start your mission and then open the console, if there no errors like missing assembly etc. the script should work.

=XIII=Wedge
10-04-2011, 07:49 PM
The FMB crashes when I load the mission. It is working fine if I re-write the LINQ statement with a foreach loop.

FG28_Kodiak
10-04-2011, 08:38 PM
Hm had no problem with linq, but i only tried a little test script. :(

=XIII=Wedge
10-04-2011, 09:47 PM
Very strange,

I know that unused using statments are disregarded by the compiler in C#.

Did you write any LINQ statements or just add the reference?

FG28_Kodiak
10-05-2011, 05:49 AM
Only a little Linq statement.

Sometimes it helps if you delete the cache of CoD.

Can you attach a sample script of your code so i can test it on my computer?

II./JG1_Krupinski
07-16-2012, 07:02 AM
NecroThread for posterity:

To use Linq, it's in System.Core.dll so use

//$reference System.Core.dll