Micro blog about Answer to the Ultimate Question of Life, the Universe, and Everything
  • Home
    • List all categories
    • Sitemap
  • Downloads
    • WebSphere
    • Hitachi902
    • Hospital
    • Kryptonite
    • OCR
    • APK
  • About me
    • Gallery
      • Italy2022
      • Côte d'Azur 2024
    • Curriculum vitae
      • Resume
      • Lebenslauf
    • Social networks
      • Facebook
      • Twitter
      • LinkedIn
      • Xing
      • GitHub
      • Google Maps
      • Sports tracker
    • Adventures planning
  1. You are here:  
  2. Home

Sitemap example

Details
Written by: Stanko Milosev
Category: C#
Published: 20 February 2022
Last Updated: 29 May 2022
Hits: 1628
  • xml
Here is one my example on how to create basic sitemap using serialization XML should look like:
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://www.example.com/</loc>
    <lastmod>2005-01-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
The model:
using System.Collections.Generic;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace SiteMapXmlCreation
{
    public class Model
    {
        [XmlRoot("urlset")]
        public class Urlset
        {
          [XmlAttribute("schemaLocation", Namespace = XmlSchema.InstanceNamespace)]
          public string SchemaLocation { get; set; }
            [XmlElement(ElementName = "url")] public List<url> Url { get; set; }
        }

        public class url
        {
            [XmlElement(ElementName = "loc")] public string Loc { get; set; }

            [XmlElement(ElementName = "lastmod")] public string Lastmod { get; set; }

            [XmlElement(ElementName = "changefreq")] public string Changefreq { get; set; }

            [XmlElement(ElementName = "priority")] public string Priority { get; set; }
        }
    }
}
The Program:
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;

namespace SiteMapXmlCreation
{
    class Program
    {
        static void Main(string[] args)
        {
            Model.Urlset serializedUrlset = new Model.Urlset
            {
                Url = new List<Model.url> {
                    new() {
                        Changefreq = "monthly"
                        , Lastmod = "2005-01-01"
                        , Loc = "http://www.example.com/"
                        , Priority = "0.8"
                    }
                }
                , SchemaLocation = "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
            };

            TextWriter txtWriter = new StreamWriter(Path.ChangeExtension(System.Reflection.Assembly.GetEntryAssembly().Location, ".xml"));

            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
            ns.Add(string.Empty, "http://www.sitemaps.org/schemas/sitemap/0.9");
            ns.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            ns.Add("xhtml", "http://www.w3.org/1999/xhtml");

            XmlSerializer xmlSerializer = new XmlSerializer(typeof(Model.Urlset), "http://www.sitemaps.org/schemas/sitemap/0.9");
            xmlSerializer.Serialize(txtWriter, serializedUrlset, ns);

            txtWriter.Close();
        }
    }
}
Example download from here.

Await and async

Details
Written by: Stanko Milosev
Category: C#
Published: 19 February 2022
Last Updated: 13 December 2023
Hits: 1594
  • core
One example of await and async from the book Pro C# 9 with .NET 5: Foundational Principles and Practices in Programming
using System;
using System.Threading;
using System.Threading.Tasks;

namespace AwaitAsyncExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Task.Run(async () =>
            {
                await MultipleAwaits();
            });

            Console.ReadKey();
        }

        static async Task MultipleAwaits()
        {
            Task task1 = Task.Run(() =>
            {
                Thread.Sleep(2_000);
                Console.WriteLine("Done with first task!");
            });
            Task task2 = Task.Run(() =>
            {
                Thread.Sleep(1_000);
                Console.WriteLine("Done with second task!");
            });
            Task task3 = Task.Run(() =>
            {
                Thread.Sleep(1_000);
                Console.WriteLine("Done with third task!");
            });
            await Task.WhenAll(task1, task2, task3);
        }
    }
}
Another example:
private static readonly Object ThisLock = new Object();

static void Main(string[] args)
{
  Task.Run(async () =>
  {
	await MultipleAwaits();
  });

  Console.ReadKey();
}

static async Task MultipleAwaits()
{
  Task task1 = Task.Run(() =>
  {
	lock (ThisLock)
	{
	  File.AppendAllText("test.txt", "test 1");
	}
  });
  Task task2 = Task.Run(() =>
  {
	lock (ThisLock)
	{
	  File.AppendAllText("test.txt", "test 2");
	}
  });
  Task task3 = Task.Run(() =>
  {
	lock (ThisLock)
	{
	  File.AppendAllText("test.txt", "test 3");
	}
  });
  await Task.WhenAll(task1, task2, task3);
}
Notice:
lock (ThisLock)
{
  File.AppendAllText("test.txt", "test 2");
}
Without lock exception "The process cannot access the file 'test.txt' because it is being used by another process." will be raised.

One more example in Windows forms:

namespace AsyncTest;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        btnStart.Click += DoSomeWork;
    }

    async void DoSomeWork(object sender, EventArgs e)
    {
        label1.Text = "start";
        string text = await DoWait();
        label1.Text = text;
    }

    private Task<string> DoWait()
    {
        Task<string> task1 = Task.Run(() =>
        {
            Thread.Sleep(2_000);
            return Task.FromResult("did it");
        });

        return task1;
    }
}

Master - Detail example

Details
Written by: Stanko Milosev
Category: C#
Published: 21 November 2021
Last Updated: 30 November 2021
Hits: 2276
Here is one my example of in-memory DataTables master - detail relationship.
Create table with code like:
DataTable dtMaster = new DataTable("Master");
In this example I will add Columns without specifying type:
dtMaster.Columns.Add("Id");
Create new row:
DataRow drMaster = dtMaster.NewRow();
drMaster["Id"] = 1;
Add row to DataTable:
dtMaster.Rows.Add(drMaster);
Now details table:
DataTable dtDetail = new DataTable("Details");
dtDetail.Columns.Add("Id");
dtDetail.Columns.Add("FkDetailMasterId");

DataRow drDetail = dtDetail.NewRow();
drDetail["Id"] = 1;
drDetail["FkDetailMasterId"] = 1;
dtDetail.Rows.Add(drDetail);
Create DataSet and add relation:
DataSet ds = new DataSet();

ds.Tables.Add(dtMaster);
ds.Tables.Add(dtDetail);

DataRelation relMasterDetail = new DataRelation("MyRelation"
	, ds.Tables["Master"].Columns["Id"]
	, ds.Tables["Details"].Columns["FkDetailMasterId"]
);

ds.Relations.Add(relMasterDetail);
Example download from here.

Invoke private method with reflection

Details
Written by: Stanko Milosev
Category: C#
Published: 17 October 2021
Last Updated: 07 November 2021
Hits: 1996
I have added a class library, and introduced one private method. Invoke looks like:
MethodInfoClass mic = new MethodInfoClass();

const BindingFlags bindingFlags = BindingFlags.InvokeMethod |
								  BindingFlags.Public |
								  BindingFlags.NonPublic |
								  BindingFlags.Static |
								  BindingFlags.Instance;

System.Reflection.MethodInfo privateTestMethod = typeof(MethodInfoClass).GetMethod("PrivateTestMethod", bindingFlags);

if (privateTestMethod is not null)
{
	string returnFromPrivateTestMethod = (string)privateTestMethod.Invoke(mic, null);
	Console.WriteLine($"privateTestMethod: {returnFromPrivateTestMethod}");
}
Example project download from here.
  1. Example of IEnumerable casting
  2. Filter XML nodes per value
  3. Few thread examples
  4. Check if GPS position is within radius

Subcategories

C#

Azure

ASP.NET

JavaScript

Software Development Philosophy

MS SQL

IBM WebSphere MQ

MySQL

Joomla

Delphi

PHP

Windows

Life

Lazarus

Downloads

Android

CSS

Chrome

HTML

Linux

Eclipse

Page 9 of 164

  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13