Laden...
F
feadur myCSharp.de - Member
Entwickler Bonn Dabei seit 11.03.2005 722 Beiträge
Benutzerbeschreibung

Forenbeiträge von feadur Ingesamt 722 Beiträge

30.09.2009 - 12:05 Uhr

Hi,

ein Regex ist kein Format-String!
Du musst auch angeben, wie die einzelnen Gruppen aufgebaut sind.



Regex vCardMatcher = new Regex("title=\"(.+) | (.+) | (.+) Jahre\"  class=\"imageWrap person\">";);


28.02.2009 - 15:16 Uhr

Hallo mosspower,

wie schon gesagt sollte man sich genau überlegen, ob man die Exception Texte lokalisieren möchte.
Völlig unüblich ist das nicht, Microsoft macht es im .NET Framework ja auch. Eine elegante Lösung des Problems ist es, eine Resource Datei mit VS anzulegen, nennen wir sie mal StringTable.resx. Du trägst deinen (Quell-) String dort ein und gibst ihm einen Namen, z.b. MyExceptionText. Danach ersetzt du den String im Code mit dem von VS generieren Property.


catch(FormatException) {
                  throw new EdiException(EdiErrorConstants.FILE_VALIDATION_ERROR,
                    String.Format(StringTable.MyExceptionText,
                            new Object[] { fieldValue,
                                           ediField.Name,
                                           ediField.MappingName,
                                           (i + 1),
                                           positionCounter,
                                           (j + 1),
                                           ediConfig.Id } ));

Jetzt ist natürlich darauf zu achten, dass zukünftige Übersetzungen auch entsprechend der Anzahl der Parameter in String.Format formatiert sind.
Jetzt musst du die resx Datei nur noch in die Zielsprachen übersetzen, wie das geht beantwortet dir das Forum unter den Stichpunkten Internationalisierung/Lokalisierung.

27.02.2009 - 20:43 Uhr

Hallo lord_fritte,

EDIT: Ok ich musste nur x:Key hinzufügen, warum auch immer..

ResourceDictionary implementiert IDicationary<object, object>. Man kann IDictionary<TKey,TValue> keine Werte hinzufügen, ohne einen Key anzugeben. Von daher macht die Fehlermeldung durchaus Sinn.

Gruß,
feadur

26.02.2009 - 23:19 Uhr

Hallo zusammen,

hat jemand eine Idee, wie das Silverlight Preview in VS 2008 funktioniert?
Ich würde so etwas ähnliches gerne für eine WinForms Anwendung realisieren.
Der Benutzer liefert die Assemblies der Silverlight Anwendung mitsamt XAML Dokumenten und diese werden dann in der WinForms Anwendung angezeigt.

Natürlich könnte man einfach das Silverlight Markup für WPF übertragen und es dort anzeigen. Abgesehen von Resources, Bindings usw. ist das ja nicht so aufwändig. Da Silverlight aber != WPF ist, würde ich es gerne innerhalb der Silverlight Runtime realisieren.

Mein erster Ansatz war, eine Silverlight Anwendung zu erstellen und per WebBrowser Control zu hosten. Aber dann bewegt man sich innerhalb der Sicherheitsbeschränkungen, so dass z.b. der Aufruf von Assembly.LoadFrom() zu einer MethodAccessException führt, von daher fällt diese Option schon mal flach. Denn ich komme am laden der Assemblies und der Instanzerzeugung mittels Reflection natürlich nicht vorbei.

Gibt es Interop Mechanismen um Silverlight Controls in WPF anzeigen zu können? Leider habe ich noch nichts dergleichen finden können.

Viele Grüße,
feadur

23.10.2008 - 17:53 Uhr

das liegt an der arbeitsweise von asp.net. eine web-form hat keinen zustand, das heisst sie lebt nur in der zeit zwischen der http anfrage und der rückantwort des servers. deshalb wird die klasse bei jeder anfrage neu erstellt und i auf den startwert zurück gesetzt. wenn du oop lernen willst, solltest du nicht mit web-forms anfangen sondern mit einfachen sachen wie konsolenanwendungen.

18.10.2008 - 09:09 Uhr

statt


Object serviceInstance = Activator.CreateInstance(typeof(MyThread).GetType());

das:


Object serviceInstance = Activator.CreateInstance(typeof(MyThread));

06.09.2008 - 13:49 Uhr

klar, absolut verständlich, das teil zu verkauen. auf der anderen seite wird er als MS mitarbeiter sicherlich nicht gerade am hungertuch nagen... =)

24.08.2008 - 14:50 Uhr

leider nicht mehr verfügbar, aber vielleicht bekommst du es ja noch gebraucht irgendwo:

http://www.amazon.de/Die-Kunst-programmieren-m-CD-ROM/dp/3860630989

23.08.2008 - 18:41 Uhr

schade dass lutz das teil nicht als open source veröffentlicht hat. jetzt wird aus einem tollen freeware tool eine kommerzielle software, von der nur eine sehr abgespeckte version umsonst aber bestimmt mit massig werbung freigegeben wird.
schade!

18.07.2008 - 15:41 Uhr

SolidColorBrush

18.07.2008 - 10:08 Uhr

das liegt daran, dass


<asdfasd />

nur von einem XmlElement Objekt repräsentiert wird, es gibt kein separates EndElement. Du kannst jedoch mit XmlElement.IsEmpty prüfen, ob es ein leeres Element wie oben ist.

17.07.2008 - 16:30 Uhr

du kannst auch einfach einen enum im konstruktor übergeben und basierend darauf deine IBericht Instanz erzeugen. Eine andere Möglichkeit wäre eine generische Methode, dann müssten aufrufende Klassen aber die konkreten Implementierungen kennen. Deshalb würde ich die eunm / Factory variante vorziehen.

16.07.2008 - 13:41 Uhr

Nimm den .Net Reflector von Lutz Roeder.
Dafür gibt es auch ein Add-In was den gesamten Sourcecode wieder in .cs Dateien schreibt. Das hat zwar ein gewisses Missbrauchspotential, aber in deinem Fall ist es genau das richtige.

16.07.2008 - 12:36 Uhr

GetFields bezieht sich nur auf Enumerations

Nein, GetFields liefert alle Felder eines Types.

Abgesehen davon, dass stark davon abzuraten ist, auf private Members eines Objekts zuzugreifen, kannst du es so machen:


class Program
    {
        static void Main(string[] args)
        {
            MyClass mc = new MyClass();
            FieldInfo fieldInfo = typeof(MyClass).GetField("_value", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            int value = (int) fieldInfo.GetValue(mc);
        }
    }

    class MyClass
    {
        private int _value = 10;
    }

16.07.2008 - 11:35 Uhr

Type.GetProperty

15.07.2008 - 18:45 Uhr

ok, ich muss zugeben, dass ich noch nie in den genuss eines solch teuren kurses gekommen bin, von daher kann ich nicht beurteilen inwiefern das etwas bringt. jeder lernt natürlich auch anders, ich gehe da ehr in richtung autodidakt und lerne lieber selbst anstatt mir dinge beibringen zu lassen.

ich erinnere mich da an einen 2-tage crashkurs hier in der firma zum thema WCF. der dozent war sehr kompetent und es hat auch viel spass gemacht, nur leider war das meiste wissen nach ein paar tagen schon wieder weg, weil einfach zu viel in zu kurzer zeit vermittelt wurde.

15.07.2008 - 17:13 Uhr

ich persönlich halte schulungen nichts, die grundlagen vermitteln wollen. grundlagen sollte man sich am besten eigenständig aneignen, indem man z.b. ein gutes buch von vorne bis hinten durcharbeitet und selbst dinge ausprobiert. das ist auch deutlich günstiger als 1590€... =) in 5 tagen sämtliche .net grundlagen drauf zu haben kann glaube ich auch der beste kurs nicht leisten.

15.07.2008 - 16:43 Uhr

während des sortierens weisst du noch nicht, wo das element später landen wird, du stellst ja nur die vergleichslogik bereit. alternativ kannst du dir natürlich einen eigenen sortieralgorithmus implementieren, aber das wäre viel aufwendiger als die liste nach dem sortieren einfach nochmal durchzugehen.

14.07.2008 - 10:48 Uhr

coole sache, vielen dank für den link.

07.07.2008 - 16:20 Uhr

das kann man auf grundlage des von dir geposteten codes nicht sagen. du musst controlToRender nicht zu Visual casten, weil FrameworkElement von Visual erbt.

was machst du mit dem rückgabewert?

07.07.2008 - 16:09 Uhr

indem du nach Visual castest. z.b.


Visual v = Frame.Content as Visual;
if(v != null) 
{
 // v ist Visual...
}

Sorry, aber das sind Grundlagen, die du dir selbst aneignen musst.

07.07.2008 - 15:54 Uhr

warum, dazu gibt es doch massig codebeispiele im netz.

07.07.2008 - 14:43 Uhr

Achso, ja das ist in WPF einfach. Schau dir z.b. mal die Klasse RenderTargetBitmap an.

07.07.2008 - 13:52 Uhr

Benutze FileStream statt MemoryStream.

07.07.2008 - 13:02 Uhr

wenn du einen screenshot vom ganzen bildschirm machen willst, bleibt dir nur der weg über die windows API, bzw. über die Klassen in System.Drawing.

07.07.2008 - 12:54 Uhr

Du suchst bestimmt eine Docking Library für WPF. Kommerzielle Lösungen gibt es da schon einige (DotNetBar.WPF, Infragistics, usw.) Auf Codeproject gibt es dazu auch einen netten Artikel, die Implementierung ist allerdings nicht so der Hit.

07.07.2008 - 10:23 Uhr

Schau dir mal die Klasse VisualTreeHelper an.

07.07.2008 - 10:22 Uhr

Das solltest du mit den Properties Anchor und Dock ohne zusätzliche Berechnung hinbekommen.

04.07.2008 - 13:29 Uhr

ich habe danach auch ewigkeiten gesucht - ohne erfolg.
Mono.Cecil und PostSharp können zwar Assemblies lesen und ändern, sind aber in dem Sinne keine Parser. Das Objektmodell reicht "nur" bis zur Methodenebene (und dem darin enthaltenen IL Code).

Der einzige mir bekannte IL Parser ist der .Net Reflector von Lutz Roeder, der auch eine API dafür bietet, die ist allerdings für die Entwicklung von Reflector Add-Ins gedacht und das Objektmodell hat mit CodeDom auch nichts zutun.

Für mich ein klarer Fall für ein Open Source Projekt... =)

04.07.2008 - 13:20 Uhr

Hallo J2T,

ich würde dir auch stark davon abraten, das rad neu zu erfinden.
Für einfache Stringtables bietet es sich an, den ResXCodeGenerator von Visual Studio zu benutzen, indem du einfach eine neue Resx Datei per Template hinzufügt. Dann wird eine statische Klasse generiert, die properties für jeden string anbietet.

Sehr empfehlenswert ist es, Satellite Assemblies zu erzeugen, die dann dynamisch zur Laufzeit für die jeweilige Sprache geladen werden. Damit kannst du dann auch auf einfache Weise Sprachpakete für deine Software anbieten.

An Übersetzungsagenturen gehen heutzutage nicht mehr nur Textdateien sondern meist auch die komplette Software, die dann mit professionellen Tools wie Passolo oder Catalyst übersetzt wird.

04.07.2008 - 11:38 Uhr

hallo HeinzTomato,

das hat er doch beschrieben, zum schnelleren plotten von graphen.

04.07.2008 - 11:36 Uhr

System.Windows.Forms.Integration.ElementHost ist wohl die richtige Klasse für dich.

04.07.2008 - 09:49 Uhr

informiere dich darüber doch einfach mal im internet. z.b. hier:
:rtfm:

04.07.2008 - 09:47 Uhr

wenn du VS benutzt, tipp "///" über der Methode ein.

03.07.2008 - 12:02 Uhr

Leider geht sowas in C# nicht.

02.07.2008 - 10:54 Uhr

Das ist meines Wissens gar nicht möglich, glaube .Net 2.0 muss installiert sein um VS2005 betreiben zu können.

02.07.2008 - 10:16 Uhr

Beim nächsten Mal: :rtfm:

02.07.2008 - 10:03 Uhr

Dann arbeitest du vielleicht noch mit .Net 1.1?
Jedenfalls sind beide Klassen im Assembly

System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

definiert. (Ab .Net 2.0)

02.07.2008 - 09:55 Uhr

System.Windows.Forms

01.07.2008 - 19:03 Uhr

unnütz würde ich nicht sagen, es geht eben darum, sicherzustellen, dass der Zieltyp auch genau dem entspricht was serialisiert wurde, und dabei ist der Assemblyname entscheidend. du solltest ehr das design deiner verteilten anwendung überdenken. beispielsweise könntest du das zu serialisierende objekt, das ja ein datenpaket ist, in ein gemeinsam genutztes assembly packen.

01.07.2008 - 16:24 Uhr

base.Text kannst du dann immer noch nicht setzen, deswegen zeigt die neue TextBox auch nichts an. Am besten speicherst du den Wert in einem neuen Feld.

01.07.2008 - 15:47 Uhr

du kannst ComboBox.Text nur setzen, wenn DropDownStyle != ComboBoxStyle.DropDownList.

Von daher bleiben dir nur 2 Möglichkeiten.

  1. <bitte wählen> in die Liste aufnehmen.
  2. OwnerDraw bzw. eigenes Derivat von ComboBox schreiben, dass Texteingaben verhindert.
01.07.2008 - 15:26 Uhr

hallo Programmierhans,

dann kann der Benutzer aber überhaupt nichts mehr damit machen =)
Ich glaube Christel möchte nur verhindern, dass der Benutzer die ComboBox beschreiben kann.

01.07.2008 - 15:22 Uhr

Das Problem ist, das ich mit DropDownStyle = DropDownList beides verbiete

Warum, das Programm kann dann immer noch Änderungen an der ComboBox machen.

01.07.2008 - 15:04 Uhr

ja das hört sich doch gar nicht schlecht an.
du kannst dir auch mal fertige lösungen anschauen und gucken wie die sowas gemacht haben:

http://www.codeproject.com/KB/WPF/WPFdockinglib.aspx

01.07.2008 - 14:52 Uhr

Wie die Exception schon sagt, ein Window Objekt kann kein Kindelement sein, sondern muss immer ein Wurzelelement im VisualTree sein. Wenn du sowas wie Docking machen möchtest musst du dir entsprechende Fensterklassen selbst basteln.

26.06.2008 - 10:07 Uhr

Der wert den du zurücklieferst ist ja auch vom Typ XTypedList<SimulationStep>. Du bekommst mit PropertyInfo.GetValue also den richtigen Wert.

23.06.2008 - 11:11 Uhr

ok jetzt kann ich es auch nachvollziehen, aber nur im Release Modus. Verstehe nicht warum das vorhin nicht so war, Optimize wird ja in VS standartmäßig gesetzt.

23.06.2008 - 09:26 Uhr

hallo chhof,

habe das mal getestet, weder in der debug noch in der release version werden die zuweisungen wegoptmimiert. ich denke ehr dass es bei dir an einem fehler im build prozess liegt, so dass sourcen und binaries nicht synchron sind. versuch mal alle .exe und .dlls zu löschen und das projekt komplett neu zu kompilieren (rebuild all).