Archiwum

Posts Tagged ‘.NET’

[C#] Konfiguracja Unity i XamlParseException

26 marca 2012 2 komentarze

Niedawno pierwszy raz użyłem microsoftowego kontenera Unity do wstrzykiwania zależności w mojej aplikacji WPF opartej o wzorzec MVVM.  Zagadnienie dependency injection przystępnie przybliżył mi cykl artykułów na xoft.pl , a samo Unity zostało bardzo zrozumiale opisane na mtaulty.com . Bez  problemów napisałem kod, który w codebehind widoku tworzy kontener, rejestruje potrzebne implementacje interfejsów używanych w ViewModelu i ustawia DataContext na uzyskany z kontenera obiekt ViewModel.

IUnityContainer uc = new UnityContainer();
uc.RegisterType(typeof(IMojTyp1), typeof(MojTyp1));
uc.RegisterType(typeof(IMojTyp2), typeof(MojTyp2));
uc.RegisterType(typeof(IMojTyp3), typeof(MojTyp3));
uc.RegisterType(typeof(IMojTyp4), typeof(MojTyp4));
this.DataContext = uc.Resolve<MainViewModel>();

Następnie postanowiłem przenieść rejestrację typów do pliku konfiguracyjnego App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
  </configSections>
  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <container>
      <register type="MojNamespace.IMojTyp1, MojAssembly"
                mapTo="MojNamespace.MojTyp1, MojAssembly"/>
      <register type="MojNamespace.IMojTyp2, MojAssembly"
            mapTo="MojNamespace.MojTyp2, MojAssembly"/>
      <register type="MojNamespace.IMojTyp3, MojAssembly"
            mapTo="MojNamespace.MojTyp3, MojAssembly"/>
      <register type="MojNamespace.IMojTyp4, MojAssembly"
            mapTo="MojNamespace.MojTyp4, MojAssembly"/>
    </container>
  </unity>
</configuration>

Teoretycznie wiedziałem jak to zrobić , ale praktyka okazała się jak zwykle bezlitosna: zażądała ofiary z czasu i ukorzenia się przed bezwzględnymi Exceptionami. Nie chciałem się poddać.  Zaatakowany przez drapieżne wyjątki użyłem najbardziej śmiercionośnej broni w całym IT, czyli google.

Czytaj dalej…

Kategorie:Przykłady Tagi: , , , ,

[C#] Interfejsy – z czym to się je?

25 listopada 2011 6 komentarzy

Podstawy

Jak najszybciej/najprościej wytłumaczyć czym jest interfejs? Interfejs, to taka jakby klasa, która deklaruje swoje składowe (głównie metody), ale ich nie implementuje, tzn. interfejs zawiera nazwę metody, ale nie posiada jej ciała z kodem. Nie można utworzyć obiektu, który będzie instancją jakiegoś interfejsu, ale interfejs może być zaimplementowany przez klasę. Jeśli klasa implementuje interfejs to znaczy, że zapewnia implementację wszystkich członków interfejsu, tzn. interfejs mówi klasie, że klasa musi posiadać określone metody, właściwości itd. Interfejs informuje jakich zachowań (implementacji jakich metod) będziemy oczekiwać od klasy. Klasa może implementować wiele interfejsów naraz. Koniec bełkotu, przejdźmy do przykładu 🙂

using System;

namespace InterfaceTest
{
	interface IKucharz
	{
		void Gotowanie();
	}

	class TypOsoby1:IKucharz
	{
		int Id {get;set;}
		string Imie {get;set;}

		public TypOsoby1(int id, string imie)
		{
			this.Id=id;
			this.Imie=imie;
		}

		public void Gotowanie()
		{
			Console.WriteLine (this.ToString()+" gotuje...");
		}

		public override string ToString()
		{
			return string.Format ("{1}",this.Id,this.Imie);
		}
	}

	class MainClass
	{
		public static void Main (string[] args)
		{
			TypOsoby1 adam = new TypOsoby1(1,"Adam");
			adam.Gotowanie();
		}
	}
}

Czytaj dalej…

Kategorie:Przykłady Tagi: , ,

[C#] Pierwszy krok z Microsoft Office Excel

26 marca 2011 Dodaj komentarz
using System;

using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelTestApp
{
    class Program
    {
        static void Main()
        {
            var ex = new Excel.Application {Visible = true};
            ex.Workbooks.Add();
            ex.Cells[4, "F"] = "jakaś wartość";
            Console.WriteLine("ok");
        }
    }
}

Uwaga: pamiętać o dodaniu Microsoft.Office.Interop.Excel w References



Kategorie:Przykłady Tagi: , , ,

[C#,WinForms] Gra Układanka

1 marca 2011 3 komentarze

Dzisiaj przedstawię proces tworzenia prostej gry, którą nazwałem „Układanką”. Jeżeli jesteś początkującym programistą i chcesz napisać pseudoużyteczny program z wykożystaniem Visual Studio i Windows Forms – ten wpis jest właśnie dla Ciebie. Jeżeli jesteś bardziej doświadczonym programistą, chcesz się trochę pośmiać / przeczytać dzienną normę kiepskiego kodu / powytykać kilka błędów i z wielką satysfakcją wyszydzić autora, bądź też pomóc zrozumieć autorowi jego błędy (niepotrzebne skreślić) – też możesz przeczytać 😉 Do dzieła!
Czytaj dalej…

Kategorie:Przykłady Tagi: , ,

Wyświetlenie listy procesów w programie.

15 lutego 2011 Dodaj komentarz

Jeżeli korzystamy z Frameworka .NET , to wykonanie tytułowego zadania jest dla nas dziecinnie proste. Czytaj dalej…

Kategorie:Przykłady Tagi: , ,

Z cyklu boso przez Śródziemie: biblioteka GDI+ oraz jak sprawdzić, czy kursor zawiera się w figurze geometrycznej.

14 lutego 2011 7 komentarzy

Dziś wykorzystam bibliotekę graficzną GDI+ i pokażę jak przetestować czy kursor zawiera się w jakiejś figurze geometrycznej. Napiszę aplikację, która będzie wyświetlała nazwę wskazanej na mapie krainy.

W tym celu biorę kostkę rosołową Knorr Czytaj dalej…

Kategorie:Przykłady Tagi: , , ,