Press "Enter" to skip to content

Kategoria: c_sharp

U mnie działa – zależnie od maszyny

Po miesiącu wrócił do mnie z gwarancji lapek – w pełni sprawny i gotów do działania. Trzeba więc na powrót przenieść do niego wszelakie projekty. W tym… api webowe.
Zależało mi na selfhostowaniu – ktoś mógłby powiedzieć – przecież iis nie ma takich problemów. Ale to już serwer HTTP i tak ręka mi drży jak mam go odpalić, więc wolę nie, przynajmniej na razie.

Mówiłam już jak bardzo kocham projekty webowe? Między innymi dlatego.

 

InvalidOperationException: Unable to resolve service for type [INazwa] while attempting to activate [MojKontroler]

Mam taką manierę, że jak ogarnęłam jak się coś robi w jednym miejscu, czasami się rzucam na pałę i zbyt analogicznie próbuję to zrobić w drugim.
Bawiłam się w autofac pod desktopem i fajnie było, więc próbując uczyć się pisać webapi (pod kątem pisania pracy dyplomowej) postanowiłam że sobie też poużywam, bo zaczęło mi się podobać, że jak chcę użyć funkcji z innej klasy, to zamiast kombinować z tworzeniem klas z jej zależnościami, po prostu wrzucam interfejs w konstruktor i gotowe, mam całkiem świeży obiekt na moje potrzeby.

Także miałam sobie klasę z jedną metodą

U mnie działa – ale tylko pod debuggerem

Jedną z zalet tego, jak coś się robi jest to, że czasami coś udaje że działa. A jak to mówi mój wybranek życiowy – „Jak coś czasami nie działa, to to nie działa”. Także piszę sobie kod uczelniany typowo, i w którymś momencie, ten wg mnie „skończony” projekt próbuję odpalić poza debuggerem. I tak zaczyna się moja historia, bo okazuje się, że to NIE działa. No chyba że uruchomię poza debuggerem i potem debugger podepnę.

TypeInitializationException

Istnieje pewna klasa błędów, których rozwiązanie sprowadza się do edycji (lub przeniesienia) jednej linijki kodu. Do tych błędów należy ten, który udało mi się ostatnimi czasy popełnić (hmm… nie podam dokładnie kiedy, bo za cholerę nie jestem w stanie sobie przypomnieć daty urodzenia napisanego z rąsi ostatniego kawałku kodu). Ok, nie był do końca napisany ręcznie, bo użyłam snippetu „propdp”, który służy do genowania propert które sobie możemy użyć potem z poziomu XAMLa chociażby.

Niewiarygodne ale prawdziwe, odcinek 1

Mam takiego współpracownika, nazwijmy go piłkarz z gitarą, jako że wolał pozostać anonimowy (ale zezwolił na publikację zadania i rozwiązań). W którymś momencie podszedł do tablicy i napisał „Sum(1)(2)(3)()) -> ma zwrócić liczbę” i powiedział, że mamy 10 minut od teraz. Jeszcze coś wspomniał, że zadanko to ma potencjał do bycia zadaniem rekrutacyjnym dla seniorów, bo trzeba pomyśleć trochę nieszablonowo.

Władca czasu

Chyba wrócę do bycia interopem. Można dostać euforii (żeby nie nazwać tego inaczej) kiedy wywołuje się w swoim kodzie czyiś kod, zwłaszcza, jeżeli nie był on dedykowany specjalnie na Twoją platformę. Kiedy wywołujesz jakąś losową dllkę, napisaną w czymkolwiek pod cokolwiek… a już najwyższym stopniem tejże euforii będzie … wywołanie funkcji z dllki systemowej. Takiej wiecie, System32 czy coś… takiej, no weźmy kernel32.dll. Brzmi strasznie. Zróbmy coś, od czego komp nie wybuchnie. Ustawmy mu czas.

Modyfikatory dostępu nie takie święte

Choroba ma swoje dobre strony. Jak akurat nie boli, można się za coś wziąć. Na przykład za napisanie posta na blogu, na którym nie pisało się nic od prawie roku.
No to i piszę;)

Dziś wezmę na tapetę modyfikatory dostępu. Temat zdaje się prosty i oklepany. Mamy ich kilka i są dobrze zdefiniowane:
• Private – dostęp tylko z klasy
• Protected – dostęp z klasy i jej dzieci (klas dziedziczących po klasie)
• Public – dostęp skąd popadnie
• Internal – dostęp w zakresie jednego assembly
• Protected internal– dostęp w zakresie jednego assembly, nielimitowany dla dzieci (dzieci nie muszą być z tego samego assembly, ale nie-dzieci już muszą)

i …

Pierwsza „książka” WPFowa w naszej bibliotece

Hejo.

Trzeba napisać jakiegoś technicznego posta do DSP, a tu wyjazd i nie ma jak;). Na szczęście jadę dopiero jutro, więc mam jeszcze kilka godzin dnia dzisiejszego, aby coś popisać.

Mam nadzieję, że jakiś kod mimo wszystko powstanie w pociągu, acz z publikacją posta może być gorzej, tak czy inaczej, postanowiłam opisać coś, co może być przydatne na początku kariery, jednocześnie nie jest to żadne rocket science wymagające większego przygotowania.

A więc…

Odkopać projekt

Hej,
a więc pierwsze co zrobiłam, to wywaliłam z okna głównego to, co nie jest już za bardzo potrzebne. Na razie spróbuję zrobić wyłącznie to, co trzeba. Potem zastanowię się jak zrobić to „ładnie”.

List a IEnumerable

DISCLAIMER:
Artykuł jest pisany na poziomie ameby tudzież ucznia podstawówki. Jeżeli masz choć blade pojęcie na temat .net czy c# zrezygnuj z czytania tego artykułu i zajmij się czymś ciekawszym.

Pewnego razu trafiło mi się na facebookach takie pytanie „dlaczego z listy konwertuje na IEnumerable a odwrotnie nie” -cytat jest skopiowany żywcem, autor wolałby pozostać anonimowy. Jako że nie ma głupich pytań i każdy kiedyś zaczynał, odpowiem koledze i innym ciekawym.

ILSPY – SZPIEGUJEMY SZPIEGA

Hej,

Z góry przepraszam że mnie wcięło, pociągi mi bokiem wychodzą, jak i ta cała praca. Nie tak dawno temu minął mi rok, z czego się bardzo cieszę. Jeszcze tylko rok i milestone przepracować pierwsze dwa lata życia będzie zaliczony.

Kiedy akurat nie czytam książki, nie śpię lub nie pracuję, przeglądam inne blogi. Siedzę a to na dotnetomaniaku, a to u któregoś ze slackowych (ircowym coś się nie chce blogować ostatnio) znajomych odpalę arta czy dwa, no i okazało się, że procent robi fajny konkurs. Tzn nie tyle konkurs fajny (acz nagroda przednia), co propozycje tematów. Art nie pasuje do żadnej z kategorii, ale nawiązuje tematycznie do całego wydarzenia. No może trochę. A z pewnością stanowiło inspirację. Tak czy inaczej, zapraszam do lektury.

Personalizacja systemu windows – level piatkosia

Przypomniało mi się coś z mojego okresu dojrzewania – że zawsze byłam skuteczna tylko, gdy się poważnie wkurzyłam.
Dopiero totalne wyprowadzenie mnie z równowagi dawało mi kopa do działania. Nie będę się rozwodzić na tym, co, albo raczej raczej kto mnie wkurzył tym razem;). Tak czy inaczej, rozmawiając z ukochanym wyrzuciłam mu, że równie jak moja współlokatorka, wkurza mnie jak mi się rozpakuje paczka tworząc folder a w nim content, zamiast się rozpakować w roboczym. Mówią, „nie ma co płakać nad rozlanym mlekiem, ile to przenieść”. No ale mam tego inżyniera i wypadałoby rozwiązać problem programowo, idąc za zasadą „jeśli coś robisz raz, zrób to ręcznie, jeśli znowu ci się to zdarza, zastanów się czy aby nie warto tego oskryptować i zrób to”. Jako że ostatnio mam fazę na windę 7 (tzn częściej ją uruchamiam i robi mi za główny OS), postanowiłam sobie dopisać małego liba (serverek comowski), który mi sprawę załatwi jednym kliknięciem PPM.

WMI – tym razem z poziomu c#

Wczoraj napisałam, że pokażę wam jak użyć WMI z poziomu C#. Scenariusz jest następujący: chcemy utworzyć drobny launcher, który pozwoli nam na odpalenie dowolnej gierki, jaką widzimy w folderze games w win7 na przykład. Tym razem uniknę wklejania całego kodu, posłużę się tym, który upubliczniłam w wakacje, a dostępny jest pod adresem https://letsplay.codeplex.com/SourceControl/latest#LetsPlay/MainWindow.xaml.cs.
WMI zostało użyte dokładnie w tym fragmencie: