{"id":3036,"date":"2021-01-19T18:06:14","date_gmt":"2021-01-19T12:36:14","guid":{"rendered":"https:\/\/lng-consultancy.com\/staging\/5474\/?p=3036"},"modified":"2022-08-02T12:48:49","modified_gmt":"2022-08-02T12:48:49","slug":"c-9-0","status":"publish","type":"post","link":"https:\/\/lng-consultancy.com\/staging\/5474\/c-9-0\/","title":{"rendered":"C# 9.0 -> What&#8217;s new"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">.NET 5, C# 9.0 (and many more features) is released now. Like always, its the time we go through the new handy features that came with the latest version. In this blog, the focus will be on C# 9.0 only. I will write another one with .NET 5 features.<\/p>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">Immutable properties with \u201d init \u201d Keywords<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I loved this one, as I am personally not a big fan of instance constructors. Though, mostly I have to write them because of the readonly (or get only) properties. Every time, we had to create a new readonly property in the class, the constructor needed to be modified (or a new constructor is required). I hardly enjoyed that process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With C# 9.0 we have init properties. This property is the same as readonly properties but can be set outside of the constructor once during the initialization. Below is an example :<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>public class Person<br>{<\/em><br>\/\/ Surname can only set during initialization<em><br>public string SurName { get; init; }<br>}<\/em><\/p><p>\/\/ Setting the value of Surname<br><em>var gPerson = new Person() { SurName = \u201cS\u201d};<\/em><\/p><\/blockquote>\n<\/div><\/div>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">Init accessors with readonly fields<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This feature is an extension of init properties. Before C# 9.0, compiler allowed to set a readonly field in the constructor only. In the latest update, we can set from init as well. Here\u2019s an example<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>public class Person<br>{<br>private readonly string firstName = \u201c\u201d;<br>public string Name { get => firstName; init => firstName = value; }<br>public string SurName { get; init; }<br>}<\/em><\/p><p><em>var gPerson = new Person() { Name = \u201cG\u201d, SurName = \u201cS\u201d};<\/em><\/p><\/blockquote>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">Records<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Record is one of the more famous features of C# 9.0. Everyone is talking about it. It does add a lot of value. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The use case for this would be when we want the whole object to work like a value-type & stay immutable. An example comes to my mind is recording sharing between threads or processes. Below is how we declare a record:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>public record Person<br>{<br>public string FirstName { get; init; }<br>public string LastName { get; init; }<br>}<\/em><\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Records are like classes, but their identity is represented by their content, not by their reference. Very close to a struct, but still a reference type.<\/p>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">With-Expression <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of my favourite feature that comes with the record. Cloning of an object to a new one has always been available, but it has never been this clean & readable. \u201cwith\u201d is only available for records for now. Below is an example<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>public record Person<br>{<br>public string FirstName { get; init; }<br>public string LastName { get; init; }<br>}<br>var gPerson = new Person() { FirstName = \u201cG\u201d, LastName= \u201cS\u201d};<\/em><\/p><p>\/\/ cloning the object with a change in FirstName<em><br>var mPerson = gPerson with {FirstName = \u201cM\u201d};<\/em><\/p><\/blockquote>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\"><em> Value-Based equality<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are many times when we want to compare our object instances based on values. Till now we achieved it either by implementing IComparer, IComparable or by override Equals method (or some other methods). C# 9, Records allow us to achieve value-based equality with all the operators as we do with any value type. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>public record Person<br>{<br>public string FirstName { get; init; }<br>public string LastName { get; init; }<br>}<br>var gPerson = new Person() { FirstName = \u201cG\u201d, LastName= \u201cS\u201d};<br>var mPerson = new Person() {FirstName = \u201cG\u201d, LastName = \u201cS\u201d};<\/em><br>\/\/ this results in \u201cTrue\u201d<em><br>Console.WriteLine($\u201d{gPerson==mPerson}\u201d);<\/em><\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Important to note that, ReferenceEquals would still return False for the records with the same content. So If you need to compare the objects for references its still possible.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>This code for above objects would return false.<\/em><br><em>Console.WriteLine($\u201d{ReferenceEquals(gPerson,mPerson)}\u201d);<\/em><\/p><\/blockquote>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">Top-Level Statements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Top-level statements remove unnecessary ceremonies from the program start. Below is standard practice to start a c# program.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>using System;<br>namespace net5pointzero<br>{<br>class Program<br>{<br>static void Main(string[] args)<br>{<br>Console.WriteLine(\u201cHello World\u201d);<br>Console.ReadLine();<br>}<br>}<br>}<\/em><\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This now can be replaced by simply<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>using System;<br>Console.WriteLine(\u201cHello World\u201d);<br>Console.ReadLine();<\/em><\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Most importantly, top-level statements don\u2019t limit your application\u2019s scope or complexity. Those statements can access or use any .NET class. They also don\u2019t limit your use of command-line arguments or return values. Top-level statements can access an array of strings named args. If the top-level statements return an integer value, that value becomes the integer return code from a synthesized Main method. The top-level statements may contain async expressions. In that case, the synthesized entry point returns a Task or Task.<\/p>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">Pattern-Matching enhancements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This improves the readability of data comparison by miles. This topic would need more attention than a small paragraph, so I would recommend going to this link and exploring this feature more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/csharp\/tutorials\/pattern-matching\">Tutorial: Build algorithms with pattern matching | Microsoft Docs<\/a><\/p>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">Target-typed \u201cnew\u201d expressions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cTarget typing\u201d is a term we use for when an expression gets its type from the context of where it\u2019s being used. For instance, null and lambda expressions are always target type.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>new<\/strong> expressions in C# have always required a type to be specified (except for implicitly typed array expressions). In C# 9.0 you can leave out the type if there\u2019s a clear type that the expression is being assigned to.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>Point p = new (3, 5);<br>Point[] ps = { new (1, 2), new (5, 2), new (5, -3), new (1, -3) };<\/em><\/p><\/blockquote>\n\n\n\n<h2 class=\"has-normal-font-size wp-block-heading\">And much more\u2026<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Please follow the link below for more information<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/csharp\/whats-new\/csharp-9\">What\u2019s new in C# 9.0 \u2013 C# Guide | Microsoft Docs<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>.NET 5, C# 9.0 (and many more features) is released now. Like always, its the time we go through the new handy features that came with the latest version. In this blog, the focus will be on C# 9.0 only. I will write another one with .NET 5 features. Immutable properties with \u201d init \u201d [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":7299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"nf_dc_page":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[32],"tags":[],"class_list":["post-3036","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C# 9.0 -&gt; What&#039;s new - L&amp;G Consultancy<\/title>\n<meta name=\"description\" content=\"C# 9.0 -&gt; What&#039;s new L&amp;G Consultancy\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/landg-consultancy.com\/c-9-0\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# 9.0 -&gt; What&#039;s new - L&amp;G Consultancy\" \/>\n<meta property=\"og:description\" content=\"C# 9.0 -&gt; What&#039;s new L&amp;G Consultancy\" \/>\n<meta property=\"og:url\" content=\"https:\/\/landg-consultancy.com\/c-9-0\/\" \/>\n<meta property=\"og:site_name\" content=\"L&amp;G Consultancy\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-19T12:36:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-02T12:48:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/landg-consultancy.com\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gaurav Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gaurav Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/\"},\"author\":{\"name\":\"Gaurav Sharma\",\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#\\\/schema\\\/person\\\/3a0c843cc8fdd00620a3e31669989cee\"},\"headline\":\"C# 9.0 -> What&#8217;s new\",\"datePublished\":\"2021-01-19T12:36:14+00:00\",\"dateModified\":\"2022-08-02T12:48:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/\"},\"wordCount\":843,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/\",\"url\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/\",\"name\":\"C# 9.0 -> What's new - L&amp;G Consultancy\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1\",\"datePublished\":\"2021-01-19T12:36:14+00:00\",\"dateModified\":\"2022-08-02T12:48:49+00:00\",\"author\":{\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#\\\/schema\\\/person\\\/3a0c843cc8fdd00620a3e31669989cee\"},\"description\":\"C# 9.0 -> What's new L&amp;G Consultancy\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/landg-consultancy.com\\\/c-9-0\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/lng-consultancy.com\\\/staging\\\/5474\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# 9.0 -> What&#8217;s new\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#website\",\"url\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/\",\"name\":\"L&amp;G Consultancy\",\"description\":\"Your Technology Partner\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#\\\/schema\\\/person\\\/3a0c843cc8fdd00620a3e31669989cee\",\"name\":\"Gaurav Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1dfc08a5282352cec5cd9863b7d6672a5a4891b8fd70c998721f20e944e9e68e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1dfc08a5282352cec5cd9863b7d6672a5a4891b8fd70c998721f20e944e9e68e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1dfc08a5282352cec5cd9863b7d6672a5a4891b8fd70c998721f20e944e9e68e?s=96&d=mm&r=g\",\"caption\":\"Gaurav Sharma\"},\"url\":\"https:\\\/\\\/lng-consultancy.com\\\/staging\\\/5474\\\/author\\\/gauravsharma497b1b31db\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# 9.0 -> What's new - L&amp;G Consultancy","description":"C# 9.0 -> What's new L&amp;G Consultancy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/landg-consultancy.com\/c-9-0\/","og_locale":"en_US","og_type":"article","og_title":"C# 9.0 -> What's new - L&amp;G Consultancy","og_description":"C# 9.0 -> What's new L&amp;G Consultancy","og_url":"https:\/\/landg-consultancy.com\/c-9-0\/","og_site_name":"L&amp;G Consultancy","article_published_time":"2021-01-19T12:36:14+00:00","article_modified_time":"2022-08-02T12:48:49+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/i0.wp.com\/landg-consultancy.com\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1","type":"image\/jpeg"}],"author":"Gaurav Sharma","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Gaurav Sharma","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/landg-consultancy.com\/c-9-0\/#article","isPartOf":{"@id":"https:\/\/landg-consultancy.com\/c-9-0\/"},"author":{"name":"Gaurav Sharma","@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#\/schema\/person\/3a0c843cc8fdd00620a3e31669989cee"},"headline":"C# 9.0 -> What&#8217;s new","datePublished":"2021-01-19T12:36:14+00:00","dateModified":"2022-08-02T12:48:49+00:00","mainEntityOfPage":{"@id":"https:\/\/landg-consultancy.com\/c-9-0\/"},"wordCount":843,"commentCount":0,"image":{"@id":"https:\/\/landg-consultancy.com\/c-9-0\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1","articleSection":["Software Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/landg-consultancy.com\/c-9-0\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/landg-consultancy.com\/c-9-0\/","url":"https:\/\/landg-consultancy.com\/c-9-0\/","name":"C# 9.0 -> What's new - L&amp;G Consultancy","isPartOf":{"@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#website"},"primaryImageOfPage":{"@id":"https:\/\/landg-consultancy.com\/c-9-0\/#primaryimage"},"image":{"@id":"https:\/\/landg-consultancy.com\/c-9-0\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1","datePublished":"2021-01-19T12:36:14+00:00","dateModified":"2022-08-02T12:48:49+00:00","author":{"@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#\/schema\/person\/3a0c843cc8fdd00620a3e31669989cee"},"description":"C# 9.0 -> What's new L&amp;G Consultancy","breadcrumb":{"@id":"https:\/\/landg-consultancy.com\/c-9-0\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/landg-consultancy.com\/c-9-0\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/landg-consultancy.com\/c-9-0\/#primaryimage","url":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1","contentUrl":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/landg-consultancy.com\/c-9-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lng-consultancy.com\/staging\/5474\/"},{"@type":"ListItem","position":2,"name":"C# 9.0 -> What&#8217;s new"}]},{"@type":"WebSite","@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#website","url":"http:\/\/sh024.global.temp.domains\/~landgcon\/","name":"L&amp;G Consultancy","description":"Your Technology Partner","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/sh024.global.temp.domains\/~landgcon\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#\/schema\/person\/3a0c843cc8fdd00620a3e31669989cee","name":"Gaurav Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1dfc08a5282352cec5cd9863b7d6672a5a4891b8fd70c998721f20e944e9e68e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1dfc08a5282352cec5cd9863b7d6672a5a4891b8fd70c998721f20e944e9e68e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1dfc08a5282352cec5cd9863b7d6672a5a4891b8fd70c998721f20e944e9e68e?s=96&d=mm&r=g","caption":"Gaurav Sharma"},"url":"https:\/\/lng-consultancy.com\/staging\/5474\/author\/gauravsharma497b1b31db\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/01\/Untitled-design-24.jpg?fit=1200%2C628&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts\/3036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/comments?post=3036"}],"version-history":[{"count":1,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts\/3036\/revisions"}],"predecessor-version":[{"id":7300,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts\/3036\/revisions\/7300"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/media\/7299"}],"wp:attachment":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/media?parent=3036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/categories?post=3036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/tags?post=3036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}