Fortsättning på namespace

Fortsätter från detta.

3) Ta bort referensen till ClassLibrary1 och lägg till den på nytt men denan gång i debug.
Debugga projektet och försök "stiga in i" metoden med F11.

Anledningen till detta med kontrollen av debugging / Stiga in i för både i Release läge och Debug läge var just för att i web appar går det tydligen inte att göra det. Vet nu dock inte riktigt varför det fungerade i detta, kanske har med att det var i Console App.
Skall väll undersöka saken lite närmare om det är så att det skall vara så eller om jag i misstag kommit åt någon "feat." som stänger av den funktionen :-)
Men nu fortsätter vi...

4) Använd ovanstående program (finns i tidigare inlägg) men lägg till ett using-statement till ClassLibrary1.BLL och ta bort "onödig kod" vid metodanropet.

Men lägger helt enkelt bara till i Program.cs
using ClassLibrary1.BLL;

Så kan man i koden även ändra från:
Console.Write("Är det en arbetsdag idag? " + ClassLibrary1.BLL.Helper.myToday());

Till:
Console.Write("Är det en arbetsdag idag? " + Helper.myToday());

5) Skapa ytterligare ett nytt projekt av typen Class Library och där den till ClassLibrary2.
Spara ner den i System007-mappen. Skapa sedan en klass som heter Helper i detta projekt och lägg denna i ett namespace som heter ClassLibrary2.BLL. Skriv sedan en publik statisk metod som med en DateTime svara på frågan vad klockan är just nu. Kompilera i debug och release.

(ClassLibrary2)Helper.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary2.BLL
{
public class Helper
{
public static string TimeRightNow()
{
DateTime time = DateTime.Now; //sätter time till en DateTime och kör in vad datum/tid är just nu
return time.ToShortTimeString(); // returnerar värdet från time med kort variant av tid hh:mm
// return time.ToLongTimeString(); // returnerar värdet från time fast med lång variant av tid hh:mm:ss
}
}
}


6) Lägg till referens till ClassLibrary2.BLL i ditt huvudprojekt och lägg till ett using-statement till denna. Anropa sedan metoden som svara på om det är en arbetsdag och metoden som svara på var klockan är just nu och meddela användaren det.

Svar: Här kommer det att krocka om man inte gör nått åt befintlig kod.
Eftersom koden just nu är:
...
using ClassLibrary1.BLL;
...
Console.Write("Är det en arbetsdag idag? " + Helper.myToday());

Och jag skulle då lägga till klockan där så kommer det att bli så här:
using ClassLibrary1.BLL;
using ClassLibrary2.BLL;

Console.Write("Är det en arbetsdag idag? " + Helper.myToday());
Console.Write("\nKlockan är just nu: " + Helper.TimeRightNow());

så kommer den att gnälla över Helper! Den finns ju på 2 ställen och hur vet man i koden vilken ClassLibrary den skall använda?
Well i detta läge är nog tanken att jag skall göra följande:
...
Console.Write("Är det en arbetsdag idag? " + ClassLibrary1.BLL.Helper.myToday());
Console.Write("\nKlockan är just nu: " + ClassLibrary2.BLL.Helper.TimeRightNow());

Man kan även som nästa del i lektionen gör också.

7) Använd ovanstående program och modifiera using-satserna så dom får varsitt alias.
ClassLibrary1.BLL får heta BLL_1 och ClassLibrary2.BLL får heta BLL_2.
Modifiera anropen till de 2 metoderna så att dom använder resp. alias.

Svar: Så det jag gör är att ändra lite i Programs.cs till följande
using BLL1 = ClassLibrary1.BLL.Helper;  // Alias
using BLL2 = ClassLibrary2.BLL.Helper;  // Alias
...

onsole.Write("Är det en arbetsdag idag? " + BLL1.myToday()); // Skriver ut resultatet från ClassLibrary1.BLL.Helper.myToday
Console.Write("\nKlockan är just nu: " + BLL2.TimeRightNow()); // Skriver ut resultatet från ClassLibrary2.BLL.Helper.TimeRightNow

Och otroligt nog blir då svaret samma!

Är det en arbetsdag idag? True
Klockan är just nu: 15:39




Allt detta med namespace har varit inom samma "Solution / FredrikUIL" så skall plocka ut dessa 2 ClassLibrarys och lägga dom i en egen Solution och se om det går bra att anropa de även från den?!
Vi får se :-)





Kommentarer

Kommentera inlägget här:

Namn:
Kom ihåg mig?

E-postadress: (publiceras ej)

URL/Bloggadress:

Kommentar:

Trackback
RSS 2.0