{"id":8795,"date":"2022-09-15T13:53:34","date_gmt":"2022-09-15T08:23:34","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/"},"modified":"2022-09-15T13:53:34","modified_gmt":"2022-09-15T08:23:34","slug":"solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/","title":{"rendered":"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-68815107\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"68815107\" data-parentid=\"68813335\" data-score=\"4\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Your explanations are not enough for a precise answer.<br \/>\nTo do this, we need to know why you need a global reference to the ViewModel instance.<\/p>\n<p>Therefore, I will describe several options.<\/p>\n<p><strong>1) If:<\/strong><\/p>\n<ul>\n<li>in general, in principle, under no circumstances is it assumed that a ViewModel can have several instances at the assembly level in which it is created;<\/li>\n<li>if this does not create any security problems, since the static instance can be accessed by everyone;<\/li>\n<li>if static values are sufficient to create a single instance. In most cases, this means that the ViewModel has only one non-parameterized constructor.<\/li>\n<\/ul>\n<p>Then in this case it is worth using Singleton.<\/p>\n<p>Example:<\/p>\n<pre class=\"lang-cs prettyprint-override\"><code>public class MainWindowViewModel : ViewModelBase\n{\n    \/\/ The only instance available outside of this class.\n    public static MainWindowViewModel Instanse { get; }\n        = new MainWindowViewModel();\n\n    \/\/ All constructors must be MANDATORY HIDDEN.\n    private MainWindowViewModel()\n    {\n        \/\/ Some code\n    }\n\n    \/\/ Some code\n}\n<\/code><\/pre>\n<p>To get this instance in XAML, x: Static is used.<br \/>\nYou can get the entire instance, or create a binding to a separate property.<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;SomeElement\n    DataContext=\"{x:Static vm:MainWindowViewModel.Instance}\"\/&gt;\n&lt;SomeElement\n    Command=\"{Binding ButtonCommandEvent,\n                      Source={x:Static vm:MainWindowViewModel.Instance}}\"\/&gt;\n<\/code><\/pre>\n<p><strong>2) If:<\/strong><\/p>\n<ul>\n<li>ViewModel is in another assembly, it has open constructors, but the current assembly needs only one instance of it;<\/li>\n<li>if this does not create any security problems, since the static instance can be accessed by everyone;<\/li>\n<li>if static values \u200b\u200bare sufficient to create a single instance. In most cases, this means that the ViewModel has only one non-parameterized constructor.<\/li>\n<\/ul>\n<p>In this case, you should use a static class with a single instance.<br \/>\nThis static class is created in the current assembly.<br \/>\nUsually it is a View project.<br \/>\nYour &#8220;class Globals&#8221; is an example of such an implementation.<\/p>\n<p>Example usage in XAML:<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;SomeElement\n    DataContext=\"{x:Static local:Globals.MainWindowViewModel}\"\/&gt;\n&lt;SomeElement\n    Command=\"{Binding ButtonCommandEvent,\n                      Source={x:Static local:Clobals.MainWindowViewModel}}\"\/&gt;\n<\/code><\/pre>\n<p><strong>3) If:<\/strong><\/p>\n<ul>\n<li>instances of ViewModel can replace each other, but only one instance is used at a time;<\/li>\n<li>if this does not create any security problems, since the static instance can be accessed by everyone.<\/li>\n<\/ul>\n<p>In this case, it is worth using a static class with the current instance of the ViewModel and providing notification of the replacement of this instance.<\/p>\n<p>An example of such an implementation:<\/p>\n<pre class=\"lang-cs prettyprint-override\"><code>public static class Globals\n{\n    private static MainWindowViewModel _mainWindowViewModel = new MainWindowViewModel();\n\n    public static MainWindowViewModel MainWindowViewModel\n    {\n        get =&gt; _mainWindowViewModel;\n        set =&gt; Set(ref _mainWindowViewModel, value);\n    }\n    public static event EventHandler&lt;PropertyChangedEventArgs&gt; StaticPropertyChanged;\n    private static void RaisePropertyChanged([CallerMemberName] string propertyName = null)\n    {\n        StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));\n    }\n\n    private static void Set&lt;T&gt;(ref T propertyFiled, in T newValue, [CallerMemberName] in string propertyName = null)\n    {\n        if (!Equals(propertyFiled, newValue))\n        {\n            propertyFiled = newValue;\n            RaisePropertyChanged(propertyName);\n        }\n    }\n}\n<\/code><\/pre>\n<p>Example usage in XAML:<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;SomeElement\n    DataContext=\"{Binding Path=(local:Globals.MainWindowViewModel)}\"\/&gt;\n&lt;SomeElement\n    Command=\"{Binding Path=(local:Globals.MainWindowViewModel).ButtonCommandEvent}\"\/&gt;\n<\/code><\/pre>\n<p><strong>4) If<\/strong> this is only needed for all windows in the application, then it is better to instantiate the ViewModel in the App Resources.<\/p>\n<p>An example of such an implementation:<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;Application x:Class=\"***.App\"\n             ---------------------\n             ---------------------&gt;\n    &lt;Application.Resources&gt;\n        &lt;local:MainWindowViewModel x:Key=\"mainViewModel\"\/&gt;\n    &lt;\/Application.Resources&gt;\n&lt;\/Application&gt;\n<\/code><\/pre>\n<p>Example usage in XAML:<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;SomeElement\n    DataContext=\"{StaticResource mainViewModel}\"\/&gt;\n&lt;SomeElement\n    Command=\"{Binding ButtonCommandEvent,\n                      Source={StaticResource mainViewModel}}\"\/&gt;\n<\/code><\/pre>\n<p><strong>5) If<\/strong> this is needed for all windows in the application, but you need the ability to replace an instance, or to create an instance you need a constructor with parameters that are calculated after the application starts, then it is better to create an additional class that will provide this instance and other data necessary for all Windows.<\/p>\n<p>An example of such an implementation:<\/p>\n<pre class=\"lang-cs prettyprint-override\"><code>public class Locator : INotifyPropertyChanged\n{\n    private MainWindowViewModel _mainWindowViewModel = new MainWindowViewModel();\n\n    public MainWindowViewModel MainWindowViewModel\n    {\n        get =&gt; _mainWindowViewModel;\n        set =&gt; Set(ref _mainWindowViewModel, value);\n    }\n\n    #region INotifyPropertyChanged\n    public event PropertyChangedEventHandler PropertyChanged;\n    private void RaisePropertyChanged([CallerMemberName] string propertyName = null)\n    {\n        PropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));\n    }\n\n    private void Set&lt;T&gt;(ref T propertyFiled, in T newValue, [CallerMemberName] in string propertyName = null)\n    {\n        if (!Equals(propertyFiled, newValue))\n        {\n            propertyFiled = newValue;\n            RaisePropertyChanged(propertyName);\n        }\n    }\n    #endregion\n}\n<\/code><\/pre>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;Application x:Class=\"***.App\"\n             ---------------------\n             ---------------------&gt;\n    &lt;Application.Resources&gt;\n        &lt;local:Locator x:Key=\"locator\"&gt;\n            &lt;local:Locator.MainWindowViewModel&gt;\n                &lt;local:MainWindowViewModel\/&gt;\n            &lt;\/local:Locator.MainWindowViewModel&gt;\n        &lt;\/local:Locator&gt;\n    &lt;\/Application.Resources&gt;\n&lt;\/Application&gt;\n<\/code><\/pre>\n<p>Or:<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;Application x:Class=\"***.App\"\n             ---------------------\n             ---------------------\n             Startup=\"OnStartup\"&gt;\n    &lt;Application.Resources&gt;\n        &lt;local:Locator x:Key=\"locator\"\/&gt;\n    &lt;\/Application.Resources&gt;\n&lt;\/Application&gt;\n<\/code><\/pre>\n<pre class=\"lang-cs prettyprint-override\"><code>public partial class App : Application\n{\n\n    private void OnStartup(object sender, StartupEventArgs e)\n    {\n        Locator locator = (Locator)Resources[\"locator\"];\n\n        \/\/ Some Code\n\n        locator.MainWindowViewModel = new MainWindowViewModel(\/* Some Parameters*\/);\n    }\n}\n<\/code><\/pre>\n<p>Example usage in XAML:<\/p>\n<pre class=\"lang-xml prettyprint-override\"><code>&lt;SomeElement\n    DataContext=\"{Binding MainWindowViewModel,\n                          Source={StaticResource locator}}\"\/&gt;\n&lt;SomeElement\n    Command=\"{Binding MainWindowViewModel.ButtonCommandEvent,\n                      Source={StaticResource locator}\"\/&gt;\n<\/code><\/pre>\n<p><strong>With regard to the &#8220;Communication&#8221; class.<\/strong><br \/>\nIt does not work directly with UI elements, so there is no need to use a &#8220;DispatcherTimer&#8221; in it.<br \/>\nThe main thread (namely it the DispatcherTimer uses) performs many of its tasks and does not need to load it with your tasks own unnecessarily.<br \/>\nReplace DispatcherTimer with any asynchronous timer:<br \/>\nSystem.Timers.Timer, System.Threading.Timer, etc.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">5<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Is it a correct approach to create static viewModel in MVVM? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Your explanations are not enough for a precise answer. To do this, we need to know why you need a global reference to the ViewModel instance. Therefore, I will describe several options. 1) If: in general, in principle, under no circumstances is it assumed that a ViewModel can have several instances at the assembly &#8230; <a title=\"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\" aria-label=\"More on [Solved] Is it a correct approach to create static viewModel in MVVM? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,1677,874],"class_list":["post-8795","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-mvvm","tag-wpf"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Is it a correct approach to create static viewModel in MVVM? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Your explanations are not enough for a precise answer. To do this, we need to know why you need a global reference to the ViewModel instance. Therefore, I will describe several options. 1) If: in general, in principle, under no circumstances is it assumed that a ViewModel can have several instances at the assembly ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-15T08:23:34+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\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:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed]\",\"datePublished\":\"2022-09-15T08:23:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\"},\"wordCount\":498,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"mvvm\",\"wpf\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\",\"name\":\"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-15T08:23:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed] - JassWeb","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:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed] - JassWeb","og_description":"[ad_1] Your explanations are not enough for a precise answer. To do this, we need to know why you need a global reference to the ViewModel instance. Therefore, I will describe several options. 1) If: in general, in principle, under no circumstances is it assumed that a ViewModel can have several instances at the assembly ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/","og_site_name":"JassWeb","article_published_time":"2022-09-15T08:23:34+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed]","datePublished":"2022-09-15T08:23:34+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/"},"wordCount":498,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","mvvm","wpf"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/","name":"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-15T08:23:34+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-is-it-a-correct-approach-to-create-static-viewmodel-in-mvvm-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Is it a correct approach to create static viewModel in MVVM? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/8795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=8795"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/8795\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=8795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=8795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=8795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}