How to get C# of version 9 in Acumatica class library
Hello everybody,
today I want to share with you following error message:
Feature 'lambda discard parameters' is not available in C# 7.3. Please use language version 9.0 or greater.
I had a code below:
public void RegisterParallelProcesses(int count) { ParallelProcessingOptions = options => { options.AutoBatchSize = false; options.BatchSize = 1; options.IsEnabled = true; options.SplitToBatches = (_, _) => SplitProcess(count); }; }
Another error message I've faced was: Feature 'target-typed object creation' is not available in C# 7.3. Please use language version 9.0 or greater.
It was related to the code below:
public static void ProcessOrder(SOOrderEntry graph, SOOrderBlueprint order) { graph.Clear(); // Insert the order and set required fields SOOrder newOrder = graph.Document.Insert(new() { OrderType = order.OrderType, }); newOrder.CustomerID = order.CustomerID; graph.Document.UpdateCurrent();
In order to deal with both of these problems, I used following modification of csproj file:
<PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{080F3E72-6B37-422C-A8E5-589DE642DCB6}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>AcuPower.VirtualDevCon2024</RootNamespace> <AssemblyName>AcuPower.VirtualDevCon2024</AssemblyName> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <Deterministic>true</Deterministic> <LangVersion>9.0</LangVersion> </PropertyGroup>
So, if you want to get new features of C# 9.0, then make sure to make this modification in property group.
If you're facing similar compatibility issues while developing for Acumatica or need custom modifications to enhance your system, we're here to help!
Leave a request for a customization, and let’s optimize your Acumatica development together!