понедельник, 25 сентября 2023 г.

GS.dll, Classlibrary, XDocextesions.cs

GS.Dll

XDocExtension

XML, xDoc file

Create Strings for

TypeInString = Namespace.NameOfType,  AssemblyName

Type = Type.GetType(TypeInString, false, true);

//Different Types, but interface is one

public static IEnumerable<string> GetTypeNameStrListEnumerable(string uri, string nodePath, string namesp)

        {

            var xdoc = XDocument.Load(uri);

            var node = xdoc.Element(nodePath);

            var nodeNamespace = node?.Attribute("ns")?.Value ?? namesp;

            if (node == null) yield break;

            if (!node.HasElements) yield break;


            foreach (var n in node.Elements())

            {

                // var ns = n.Attribute("ns")?.Value ?? namesp;

                var ns = n.Attribute("ns")?.Value ?? nodeNamespace;

                var str = ns + '.' + n.Name.ToString().Trim();

                yield return str;

            }

        }

        public static IEnumerable<string> GetTypeNameStrListEnumerable(string uri, string nodePath, 

                                    string namesp, string assemblyName)

        {

            var xdoc = XDocument.Load(uri);

            var node = xdoc.Element(nodePath);

            if (node == null) yield break;

            if (!node.HasElements) yield break;


            var nodeNamespace = node.Attribute("ns")?.Value ?? namesp;

            var asmName = node.Attribute("as")?.Value ?? assemblyName;


            foreach (var n in node.Elements())

            {

                var ns = n.Attribute("ns")?.Value ?? nodeNamespace;

                var asm = n.Attribute("as")?.Value ?? asmName;

                var str = ns + '.' + n.Name.ToString().Trim() + ", " + asm;

                yield return str;

            }

        }

    }

Комментариев нет:

Отправить комментарий