From f7cef7f3276f1796eab4ab2d8dacd62659d5a2d7 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Thu, 18 Dec 2025 15:55:53 +0330 Subject: [PATCH] last ... --- Extensions/XReferenceExtensions.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Extensions/XReferenceExtensions.cs b/Extensions/XReferenceExtensions.cs index f9caa8d..ce975b7 100644 --- a/Extensions/XReferenceExtensions.cs +++ b/Extensions/XReferenceExtensions.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using xCommons.Extensions; using xDataService.Models; @@ -69,12 +70,22 @@ namespace xDataService.Extensions var parts = source.Split(splitter.Value); if (parts.Count() >= 3) { + // + T referencedTo; + try + { + referencedTo = (T)Convert.ChangeType(parts[1], typeof(T)); + } catch + { + referencedTo = (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFrom(parts[1]); + } + // // Parse String Parts ... result = new XReference { + ReferencedTo = referencedTo, Index = (int)Convert.ChangeType(parts[2], typeof(int)), - ReferencedTo = (T)Convert.ChangeType(parts[1], typeof(T)), ProvidedFor = (string)Convert.ChangeType(parts[0], typeof(string)), }; } @@ -96,7 +107,7 @@ namespace xDataService.Extensions var result = string.Empty; // - if (source.IsNull() && source.HasChild()) + if (!source.IsNull() && source.HasChild()) { // var stringList = new List(); @@ -147,7 +158,7 @@ namespace xDataService.Extensions public static IList> ParseXReferenceList(this string source) { // - IList> result = new List>(); + var result = new List>(); // if (!source.IsNullOrEmpty())