Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von esskar
Thema: Lync 2010 UCMA Framework
Am im Forum: Datentechnologien

ist jetzt schon länger her. hast du es hinbekommen?

Thema: IP nicht setzbar
Am im Forum: Netzwerktechnologien

ich würde nen WinService schreiben, mit dem deine ASP seite über z.b. namedpipes (oder auch WCF) kommuniziert und der dann die IP setzt!

Thema: [gelöst] Dynamische Where Klausel in Linq
Am im Forum: Datentechnologien

wenn du wirklich alles in eine anweisung packen willst, würde ich es folgendermaßen darstellen


var custs =
	from c in db.BESTELLUNG
	join h in db.HERSTELLER on c.HERSTELLER_ID equals h.HERSTELLER_ID into tempHST
	from hst in tempHST.DefaultIfEmpty()
	join k in db.KUNDE on c.KUNDE_ID equals k.KUNDE_ID into tempKU
	from kun in tempKU.DefaultIfEmpty()
	where
		c.BESTELLNUMMER.StartsWith(myBestellungSuche.Bestellnummer) &&
		hst.NAME_1.StartsWith(myBestellungSuche.Hersteller) &&
		kun.KUNDENNUMMER.StartsWith(myBestellungSuche.Kundennummer) &&
		c.LIEFER_NAME_1.StartsWith(myBestellungSuche.Liefer_Name_1) &&
		c.LIEFER_NAME_2.StartsWith(myBestellungSuche.Liefer_Name_2) &&
		(!string.IsNullOrEmpty(myBestellungSuche.Bestelldatum) ? c.BESTELLDATUM.Equals(myBestellungSuche.Bestelldatum) : true) &&
		(!string.IsNullOrEmpty(myBestellungSuche.Bestellstatus) ? c.BESTELLSTATUS.Equals(myBestellungSuche.Bestellstatus) : true) &&
		(!string.IsNullOrEmpty(myBestellungSuche.Bestellart) ? c.BESTELLART.Equals(myBestellungSuche.Bestellart) : true) &&
	select new { .... };

Thema: Postfix oder Prefix Schreibweise um eine Variable zu inkrementieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


this._current = this._internalDictionary[this._index];
this._index++;
solltest du entweder als

this._current = this._internalDictionary[this._index++];
oder


this._current = this._internalDictionary[this._index];
++this._index;
schreiben!

Thema: IEnumerator<T>-Interface implementieren: Rückgabetyp von Current
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

den (object) cast kannst du dir sparen. in c# ist ja alles ein object!

Thema: IEnumerator<T>-Interface implementieren: Rückgabetyp von Current
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

du machst einmal deine generische implementierung


public TKey Current
{
   get { 
      if(_keys.Count ≤ 0) throw new ApplicationException();
     return _keys[_index];
   }
}

und dann deine explizite implementierung für IEnumerator


object IEnumerator.Current
{
   get { return this.Current; }
}

bist du aber sicher, dass du deine collection von Ienumerator und nicht von Ienumerable ableiten willst?

Thema: Settings in Registry speichern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

ich hab dafür 2 Klassen und ein Interface geschrieben


public class RegistryHelper
    {
        private RegistryKey m_registryKey = null;
        private string m_registryPath = null;

        public RegistryHelper(RegistryKey registryKey, string registryPath)
        {
            this.RegistryKey = registryKey;
            this.RegistryPath = registryPath;
        }

        public RegistryKey ConfigurationStore
        {
            get { return this.RegistryKey.CreateSubKey(this.RegistryPath); }
        }

        public RegistryKey RegistryKey
        {
            get { return m_registryKey; }
            set { m_registryKey = value; }
        }

        public string RegistryPath
        {
            get { return m_registryPath; }
            set { m_registryPath = value; }
        }

        public string LoadString(string name, string def, bool create)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                return (string)key.GetValue(name, def);
            }
            finally
            {
                if (create && !HasValue(name))
                    SaveString(name, def);
                key.Close();
            }
        }

        public string[] LoadStringArray(string name, string[] def, bool create)
        {
            return this.LoadStringArray(name, def, ",", create);
        }

        public string[] LoadStringArray(string name, string[] def, string sep, bool create)
        {
            string s = this.LoadString(name, def != null ? string.Join(sep, def) : "", create);
            return s.Split(new string[] { sep }, StringSplitOptions.RemoveEmptyEntries);
        }

        public void SaveString(string name, string val)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                key.SetValue(name, val);
            }
            finally
            {
                key.Close();
            }
        }

        public int LoadInteger(string name, int def, bool create)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                return (int)key.GetValue(name, def);
            }
            finally
            {
                if (create && !HasValue(name))
                    this.SaveInteger(name, def);
                key.Close();
            }
        }

        public uint LoadDword(string name, uint def, bool create)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                return (uint)key.GetValue(name, def);
            }
            finally
            {
                if (create && !HasValue(name))
                    this.SaveDword(name, def);
                key.Close();
            }
        }

        public void SaveDword(string name, uint val)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                key.SetValue(name, val, RegistryValueKind.DWord);
            }
            finally
            {
                key.Close();
            }
        }

        public void SaveInteger(string name, int val)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                key.SetValue(name, val, RegistryValueKind.DWord);
            }
            finally
            {
                key.Close();
            }
        }

        public Type GetValueType(string name)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                RegistryValueKind kind = key.GetValueKind(name);
                if (kind == RegistryValueKind.DWord)
                    return typeof(int);
                else if (kind == RegistryValueKind.String)
                    return typeof(string);
                else
                    return typeof(object);
            }
            catch (System.IO.IOException) { return null; }
            finally
            {
                key.Close();
            }
        }

        public bool HasValue(string name)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                return key.GetValue(name) != null;
            }
            finally
            {
                key.Close();
            }
        }

        public void DeleteValue(string Name)
        {
            RegistryKey key = this.ConfigurationStore;
            try
            {
                key.DeleteValue(Name, false);
            }
            finally
            {
                key.Close();
            }
        }        
    }


public interface IConfiguration
    {
        uint LoadDword(string name, uint def, bool create);
        int LoadInteger(string name, int def, bool create);
        string LoadString(string name, string def, bool create);
        decimal LoadDecimal(string name, decimal def, bool create);
        string[] LoadString(string name, string[] def, bool create);

        void SaveDword(string name, uint val);
        void SaveInteger(string name, int val);
        void SaveString(string name, string val);
        void SaveDecimal(string name, decimal val);

        IConfiguration GetSection(string name);

        StringDictionary GetValues();
        StringDictionary GetValues(Strings names);
        Strings SectionNames { get; }
        Strings ValueNames { get; }
        Type GetValueType(string valueName);
    }


 public class RegConfiguration : Win32.RegistryHelper, IConfiguration
    {        
        public RegConfiguration(string registryPath)
            : base(Microsoft.Win32.Registry.LocalMachine, registryPath)
        {            
        }

        #region IConfiguration Members

        public decimal LoadDecimal(string name, decimal def, bool create)
        {
            decimal retval;
            if (!decimal.TryParse(this.LoadString(name, def.ToString(ThreadHelper.Culture), create), NumberStyles.Number, ThreadHelper.Culture, out retval))
                retval = def;
            return retval;
        }

        public void SaveDecimal(string name, decimal val)
        {
            this.SaveString(name, val.ToString(ThreadHelper.Culture));
        }

        public IConfiguration GetSection(string name)
        {
            return new RegConfiguration(Path.Combine(this.RegistryPath, name));
        }

        public Strings SectionNames
        {
            get
            {
                Strings strings = new Strings();
                strings.AddRange(this.ConfigurationStore.GetSubKeyNames());
                return strings;
            }
        }

        public Strings ValueNames
        {
            get
            {
                Strings strings = new Strings();
                strings.AddRange(this.ConfigurationStore.GetValueNames());
                return strings;
            }
        }
        
        public StringDictionary GetValues(Strings names)
        {
            return ConfigurationHelper.GetValues(this, names);
        }

        public StringDictionary GetValues()
        {
            return ConfigurationHelper.GetValues(this, null);
        }

        public string[] LoadString(string name, string[] def, bool create)
        {
            return ConfigurationHelper.LoadStringArray(this, name, def, create);
        }

        #endregion
    }

vielleicht hilft es dir ja. aber statisch würde ich die sache nicht halten.
eher ne normale klasse wie ich, die du dann ggf. global statisch zur verfügung stellst!

Thema: Two-Way SSL mit WCF
Am im Forum: Netzwerktechnologien

vielleicht hilft dir folgender link weiter http://notgartner.wordpress.com/2007/09/06/using-certificate-based-authentication-and-protection-with-windows-communication-foundation-wcf/
meine google query dazu: http://www.google.com/search?hl=en&client=firefox-a&hs=YQW&rls=org.mozilla%3Ade%3Aofficial&q=wcf+client+authentication+certificate&aq=2&aqi=g3&aql=&oq=wcf+client+auth&gs_rfai=

Thema: WebRequest Error verhindern?
Am im Forum: Web-Technologien

Zitat von The_Mexican


        public void Huhu() 
        {
            // Zähler für Schleife
            int tmpCounter = 0;

            while (tmpCounter < 10)
            {
                try
                {
                    // Aktion war erfolgreich
                    tmpCounter = 10; 
                }
                // ...
            }
        }

würde ich eher als

// Aktion war erfolgreich
break;


schreiben!

Thema: WebRequest Error verhindern?
Am im Forum: Web-Technologien

würde ja mal den kompeltten WebRequest teil in ein try { } catch { } auslagern
und fehlermeldungen richtig abfangen!

Thema: ToolTip.Show: IWin32Window verlangt, wie übergeben?
Am im Forum: GUI: Windows-Forms

dann mal


tooltip.Show("Hallo Welt", (sender as ToolStripMenuItem).Owner.Parent, Control.MousePosition);

natürlich ggf. noch überall auf null checken

Thema: ToolTip.Show: IWin32Window verlangt, wie übergeben?
Am im Forum: GUI: Windows-Forms

hi.
ToolStripMenuItem ist ja so oder so kei IWin32Window

versuchs mal so!


private void MouseHover(object sender, EventArgs e)
{
      tooltip.Show("Hallo Welt", this, Control.MousePosition.X, Control.MousePosition.Y);
}

Thema: Wozu verwendet man () => * [Lösung: Lambdaausdruck]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

das ist eine schreibweise für inline callbacks (oder wie das genau heißt, kenn noch closures)
"früher" hat man das so geschrieben


ThreadPool.QueueUserWorkItem(delegate(object unused) { notifier.SendTileNotification(subscribers, "PushNotificationsToken", "/Images/" + weatherType + ".png", temperature, location, OnMessageSent)});

Thema: [erledigt] Application.Idle zum Update der WinControls
Am im Forum: GUI: Windows-Forms

weiß nicht, ob du das so meinst?


menuItemForSave.Click += new EventHandler(this.OnSaveSomething);
buttonForSave.Click += new EventHandler(this.OnSaveSomething);

protected virtual void OnSaveSomething(object sender, EventArgs ea)
{
}

das hat jetzt nix mit idle zu tun. sowas macht man normalerweise im construktor bzw. in der InitializeComponent Funktion (wird meistens vom Designer anglegt)

Thema: Class2 erbt von Class1 : Designer : Could not load file or assembly
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

hi.
* hast du mal alle fenster geschlossen, und dann ein rebuild gemacht?
* was passiert genau im Form1 Konstruktor? Ist Form1 widerrum abgeleitet von 3rdpartyform?

- base() wird automatisch aufgerufen, wenn nix angegeben wird!

Thema: Sockets (TcpClient) ohne Admin-Rechte?
Am im Forum: Netzwerktechnologien

hatte zu schnell geantwortet. hatte da wohl linux im kopf.
was kommt den für eine fehlermeldung? access denied oder wie?

Thema: Sockets (TcpClient) ohne Admin-Rechte?
Am im Forum: Netzwerktechnologien

hi. für ports < 1024 brauchst du admin rechte.

Thema: IXmlSerializable und WSDL
Am im Forum: Netzwerktechnologien

lasst es mich anders formulieren:
kann ich dem webservice irgendwie sagen, dass er es ignorieren soll, dass meine Klasse Foo IXmlSerializable implementiert!?!

Thema: Debugger zeigt falschen boolschen Wert beim string == string und string!=string
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

ersetz mal dein if(value != title) durch


bool b1 = value != title;
bool b2 = !value.Equals(title);
if(b1 && b2)
dann kannst du im debugger mal schauen, ob b1 und b2 in deinem fall beide true sind; also value wirklich ungleich title

Thema: Debugger zeigt falschen boolschen Wert beim string == string und string!=string
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Rahvin
Strings müssen immer mit .Equals() verglichen werden, ansonsten vergleichst Du die Adressen und nicht die Werte.

nein. das ist nur bei objecten so, die die == und != opertoren nicht überschreiben.
mit echten System.String's solltest du kein solches problem haben


var foo1 = "foo";
var foo2 = new string(new char[] { 'f', 'o', 'o' });

Console.WriteLine(foo1 == foo2);
Console.WriteLine(foo1 == "foo");

Thema: IXmlSerializable und WSDL
Am im Forum: Netzwerktechnologien

Hallo,

ich hab hier ne WebMethod Foo[] Bar();. das hatt auch lange so funktioniert.
im vergangen jahr hab ich dann irgendwann mal Foo IXmlSerializable implementieren lassen, mit dem hintergrund, dass ich paar wichtige details von Foo in einer Datei ablegen kann. in der datei brauch ich nur 1 bis 2 Properties von Foo, über den Webservice jedoch alle.
als ich jetzt gestern den webservice upgedatet hab, hab ich gemerkt, dass nun die Foo definition aus der wsdl verschwunden ist. stattdessen hab ich jetzt nur noch eine System.Data.DataSet[] Bar() (<- wurde mit wsdl.exe erzeugt)
wie biege ich das denn wieder gerade? ich hätt gern die selbe definition in meiner wsdl wie vorher.

Thema: Surfsticks ansteuern, um SMS zu empfangen
Am im Forum: Rund um die Programmierung

das ding hat nen modem und network treiber

Thema: Surfsticks ansteuern, um SMS zu empfangen
Am im Forum: Rund um die Programmierung

Hallo,

ich hab diverse surfsticks (o2, fonic, ...).
deren SMS feature würde ich gerne nutzen können.
also SMS die ankommen, würde ich gerne irgendwo anzeigen.
kann mich da jemand in ne richtige richtung lenken?

Thema: Form-Wrapper ?
Am im Forum: GUI: Windows-Forms

eine andere wäre sowas wie


public class Window<T> where T: Form, new()
    {
        public Window()
        {
            this.InnerForm = new T();
        }

        public T InnerForm
        {
            get; private set;
        }
    }

wobei man dann für Window all das neu schreiben müsste, was es für form schon gibt. da man dann auch keinen designer hat, müsste man dann von hand die controls hinzufügen. ist eben recht mühseelig.

Thema: Form-Wrapper ?
Am im Forum: GUI: Windows-Forms

Ich hab 2 Arten von Base-Formen.

class BaseForm : System.Windows.Forms.Form, ITransportHandler
und eine

class DockableBaseForm : Irgendeine.Andere.DockingLibrary.Form, ITransportHandler

Irgendeine.Andere.DockingLibrary.Form ist natürlich irgendwo eine System.Windows.Forms.Form, aber da komm ich erstmal nicht dran.

ich kann jetzt über das ITransportHandler interface daten an das fenster schicken.
Um die Sache noch komplizierter zu machen, gibt es auch

SpecialForm : BaseForm
und

SpecialDockableForm : DockableBaseForm 
. Beide stellen das selber da, aber das eine ist eben dockable, das andere nicht.

ist relativ dumm.

am liebsten hätte ich so eine art

class Window : Form 
{
    public Window(Form innerForm) 
    {
       this.InnerForm = form;
    }

    public Form InnerForm { get; private set; }
}

leider lassen sich ja aber nicht alle properties/funktionen von Form überschreiben, so dass ich eine Form ja nicht komplett wrappen kann.

hat sonst jemand ne idee wie ich das geschickt machen könnte?

Thema: Serialisierung eines Members, dessen Typ sich geändert hat: Object of type cannot be converted to...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

ah, man muss doch noch bissle mehr tun


public class TabModelPersistenceHelperBinder : System.Runtime.Serialization.SerializationBinder
    {
        public override Type BindToType(string assemblyName, string typeName)
        {
            Type retval = Type.GetType(String.Format("{0}, {1}", typeName, assemblyName));
            if(retval.Equals(typeof(Dictionary<string, List<string>>)))
                retval = typeof(Dictionary<string, HybridSet<string>>);
            else if(retval.Equals(typeof(KeyValuePair<string, List<string>>)))
                retval = typeof(KeyValuePair<string, HybridSet<string>>);
            else if (retval.Equals(typeof(List<string>)))
                retval = typeof(HybridSet<string>);
            return retval;
        }        
    }

Thema: Serialisierung eines Members, dessen Typ sich geändert hat: Object of type cannot be converted to...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

hmm, so ganz einfach ist es nun doch nicht
hab jetzt folgendes


public class TabModelPersistenceHelperBinder : System.Runtime.Serialization.SerializationBinder
    {
        public override Type BindToType(string assemblyName, string typeName)
        {
            Type retval = Type.GetType(String.Format("{0}, {1}", typeName, assemblyName));
            if(retval.Equals(typeof(Dictionary<string, List<string>>)))
                retval = typeof(Dictionary<string, HybridSet<string>>);
            return retval;
        }        
    }

werde auch auf gerufen, jedoch wird jetzt die Exception geworden, dass IConvertible implementiert werden muss.
Leider kann ich ja Dictionary<string, List<string>> nicht mehr von Iconvertible ableiten.
Gibts noch andere ideen?

Thema: Serialisierung eines Members, dessen Typ sich geändert hat: Object of type cannot be converted to...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

wie sooft geb ich mir die antwort selbst:
Haber System.Runtime.Serialization.SerializationBinder gefunden (siehe Overriding Assembly / Type information auf http://www.diranieh.com/NETSerialization/BinarySerialization.htm#Advanced%20Serialization)
Denke mal, das wird mir weiter Helfen.

Thema: Serialisierung eines Members, dessen Typ sich geändert hat: Object of type cannot be converted to...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich hab hier ein Projekt von nem ehemaligen Kollegen umgestellt, ein Member ist jetzt kein Dictionary<string, List<string>> mehr, sondern ein Dictionary<string, HybridSet<string>>

HybridSet<> ist eine Klasse von mir.

Nun kann man die Klasse mit eben diesem Member auch serialisieren.
Problem nun: es gibt eben alte Serialisiereungen, die sich natürlich mit der neuen Definition beißen:

Zitat
Object of type 'System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.String]]' cannot be converted to type 'System.Collections.Generic.Dictionary`2[System.String,Collections.Generic.HybridSet`1[System.String]]'.

kann ich das irgendwie mit einem Typconverter lösen?

nachtrag: ich hab schon mit operatoren überladungen rumprobiert, aber es scheint es nicht zu tun.

Thema: FileStream erweitern für Image
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

okay. dann musst du eben auch die Position property überlagern und ja nach dem den m_current setzen. anhand des der filelength weißt du ja, wann du den m_current ändern musst.