Knuddlbaer schrieb:
Schaust Du ab und an auch mal in die MSDN ?
Ja oft genug! Nur leider weiß ich oft nicht nach was ich suchen soll.
Habe immer nach MultiMergeCollection gesucht und leider nichts gefunden.
@archimedischer Körper (Rhombicosidodecahedron )
Danke,Danke,Danke,Danke,....
if (value is List<string>)
{
form.EditorValue = (List<string>)value;
}
else
{
var list = value as ICollection; // oder ICollection
if (list != null)
{
string[]help = new string[list.Count];
list.CopyTo(help,0);
form.EditorValue = new List<string>(help);
}
}
Problem 1 ist nun gelöst, bei Selektion von:
Element1.List: Hund,Katze,Maus,Pferd
Element2.List: Hund,Katze,Maus,Pferd
bekomme ich nun: Hund,Katze,Maus,Pferd zurück
Für Problem 2 habe ich aber noch keine Lösung, habt ihr vielleicht Ideen mit was ich es probieren könnte?
Lg und vielen Dank nochmal für eure Hilfe und Geduld
Moins
Ich habe eine Frage bzw. ein Verständnis Problem...
Ich habe ein WSDL und muss nun einen Server Programmieren welchem
diesem WSDL entspricht. Soweit so gut.
Wie ich gelesen habe müsste ich Objekte (struct) erstellen, welche
den Strukturen des WSDL gleichkommen und diese als Parameter/Rückgabewert
setzen. z.B.:
// ... cut ... //
[WebMethod]
public myObjReturnHelloWorld HelloWorld(myObjParamHelloWorld data)
{
// ... mache was du machen willst ... //
}
Nun, Laut WSDL (xsd) wird das XML welches ich als Parameter bekommen sollte
hat aber auch Attribute, welche ich mit dieser Art nicht Abdecken kann.
Zumal widerstrebt es mir dynamisches XML in statische Strukturen abzubilden.
Wie soll ich so etwas in einem Objekt Abbilden:
<testInfo>
<gewicht me="kg">15</gewicht>
<zeit me="az">34.5</zeit>
<name>Haleon</name>
</testInfo>
Wie ich an die Cdaten kommen verstehe ich ja noch, aber die Attribute gehen
verloren.
Nach etwas suchen habe ich scheinbar die Lösung gefunden: xmlDocument.
Mein Test sieht etwa so aus:
[WebMethod]
public System.Xml.XmlDocument vergleicheZweige(System.Xml.XmlDocument xmlDaten)
{
System.Xml.XmlDocument xmlRet = new XmlDocument();
string name = (xmlDaten.GetElementById("name")).Value;
string vorname = (xmlDaten.GetElementById("vorname")).Value;
string result = "false";
if (name == vorname) {
result = "true";
}
xmlRet.LoadXml("<antwort>" + result + "</antwort>");
return xmlRet;
}
Schon voller Vorfreude habe ich den Test generiert und gestartet, das Ergebnis war ernüchternd:
POST /Service1.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/vergleicheZweige"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<vergleicheZweige xmlns="http://tempuri.org/">
<xmlDaten>xml</xmlDaten>
</vergleicheZweige>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<vergleicheZweigeResponse xmlns="http://tempuri.org/">
<vergleicheZweigeResult>xml</vergleicheZweigeResult>
</vergleicheZweigeResponse>
</soap:Body>
</soap:Envelope>
Dementsprechend war auch das WSDL. Anstelle der XML struktur nahm er einfach
xmlDaten (Name des Parameters). Was aber nicht meiner Vorgabe (des Clients) entspricht. Somit würden wohl Server und Client aneinander vorbei reden.
Ich könnte nun versuchen etwas zu basteln, da ich ja nun weiss das er
den Namen des Parameters verwendet. Wie kann man diese Automatismus abschalten?
Wie löst man so etwas am besten? Könnte man nicht eine xsd Schema als Rückgabe
oder Parameter definieren?
Gruss
Ghost
Ok, ich habe mich jetzt nochmals schlau dazu gemacht. Es scheint, dass der Tipp von hustbear so ziemlich perfekt war. Es ist zwar nicht ganz das, was ich ursprünglich wollte, aber es ist genauso gut.
Daher, vielen Dank für die Hilfe!
Grüssli
Ja das kenne ich, aber da sind ach eine bugs drin... Datacontract polymorphy ist nich ganz korrekt bzw. funktioniert so bei mir NET 3.5 nicht! Aber egal.. das problem ist halt, das ich das generische Service Contract Interface so nicht als TypeName in die wcf config datei eingeben kann! wege der unbekanten generischen Typen!!!
Ok, nach einiger Suche hab ich ein paar Beispiele gefunden, weiß aber nicht wirklich ob und wie mir das weiterhilft... Könntest Du mir vielleicht noch einen Denkanstoß geben hustbaer?
Vielen Dank!
Hallo Gemeinde,
ich quäle mich schon seit ein paar Tagen mit einem ganz kuriosen Effekt herum. Hier einfach mal ein Teil vom Code:
private void cboKontotyp_SelectionChangeCommitted(object sender, EventArgs e)
{
int nIndex = 0;
DataRowView row;
bool bBankkonto;
nIndex = cboKontotyp.SelectedIndex;
row = (DataRowView)_bsKontotypen.List[nIndex];
bBankkonto = (bool)row["bankkonto"];
txtBankleitzahl.Visible = bBankkonto;
}
Wie man sieht versuche ich im Eventhandler "SelectionChangeCommitted" einer ComboBox in Abhängigkeit der Auswahl andere Steuerelemente auszublenden.
Soweit funktioniert das auch, aber SelectionChangeCommitted wird nur ausgelöst wenn der Benutzer etwas ändert... normalerweise gehört es in den Handler SelectedIndexChanged. Füge ich denselben Code nun aber in SelectedIndexChanged ein, habe ich die kuriosesten Nebeneffekte: Füge ich einen neuen Datensatz ein, wird stattdessen ein anderer Datensatz bearbeitet. Beim speichern wird ein Teil der Daten nicht übernommen. Will ich den Datensatz dann wieder löschen hagelt es Laufzeitfehler.
Nun hoffe ich das mir einer von euch helfen kann, ansonsten muß ich wohl oder übel einige Features aus der Anwendung rausnehmen
Noch ein paar Randinfos: Visual C# 2008 mit .NET-Framework 3.5, Datenbank ist SQL Server Compact (vielleicht liegts auch daran?).
LG, Sascha
Ja klar, das entscheide ich nich.. aber ich ahabv eine WCF Streamin Service, welcher max. byte chunks in größeder MTU des entsprchend Netwerkadapter senden kann.. udn die wil ich er mittellen!!!!
aber noramlerweise sind diese Anweisungen doch kompatibel von C++ nach C#.
Ich dachte immer was in managed c++ geht geht auch in C#.
Der Source Code ist nicht kompatibel (die Syntax ist ja anders), aber der IL Code ist kompatibel.
Simon
Ok habs. Im RecalcValue muss mit base.Value gearbeitet werden
Jetzt geht das Maximum aber nur bis 1,0
Da muss ich jetzt nochmal drüberschaun.
Nachtrag:
Ich hätte das auch ganz einfach haben können den Value-Wert einfach durch 10 Teilen und den Max und Min-Wert mit 10 Multiplizieren
Liegt doch wohl an der Hitze...
Danke für eure Beiträge. Eure Beiträge haben natürlich etwas bei meiner Denkweise nun geholfen.
Ja mein Projekt ist jetzt noch nicht so riesig.
Die Sachen was jetzt der Designer in die Formklasse erstellt hat, wie events und co sind jetzt bei mir noch in der Klasse geblieben. Ich habe jetzt erstmal nur um eine Klasse mein Projekt erweitert was der seriellen Schnittstelle angeht, da dies ja mehr oder weniger unabhängig der Formelemente bzw. Form läuft. Also bis jetzt Thema Form blieb in Form und Thema serielle Schnittstelle ist nun in der Eigenen Klasse.
Dennoch ist der Code ja noch recht groß, weil der Designer nun die Events in die Formklasse packt. Und ich noch Funktionen reingebastelt habe die die Formelemente füllen bzw. Initialisieren unter anderem bei Events werte berechnen. Ist es vernünftig Events von Formelemente auch in der Klasse zu lassen oder soll diese Sachen in eine seperate Datei wie z.B. formevents.cs also keine eigene Klasse nur eine Auftrennung oder ist dies garnicht möglich. Vielleicht sollte man ja auch nicht soviel trennen, wenn man am Schluss ja garnicht mehr weiß wo was zu finden ist. Dachte nur Thema zu Thema. Aber das ist ja ansichtssache. Events sind ein Teil der Formelemente, aber Events könnte man auch als eigenes Thema betrachten. Aber ich glaube dann müßte ich später bei verschiedenen Formen schauen wie ich das mit den Events dann machen wenn diese in einer seperaten Datei ist.
Nun habe ich noch ein anderes Problem bei einem CustomControl, aber dazu in einem anderen Forumsbeitrag.
Mein Projekt muß bald Fertig werden, daher die vielen Posts. Sorry!!!! Es nimmt aber Tag zu Tag Form an
Danke nochmals für eure Hilfe!
Hallo witte,
danke für die Antwort!
Aus irgendeinem Grund funktioniert heute das, was am Freitag nicht funktioniert hat. Fehler kommt nicht mehr. Vielleicht musste sich die Anwendung übers Wochenende erst einmal sammeln.
Soweit so gut, solange der Fehler nicht mehr autritt, ist das Problem gelöst.
Hallo allerseits,
ich hoffe ich bin hier richtig, ich verwende WCF um daten von einem PC zum anderen zu übertragen, dabei hab ich ein OperationContract in meinem Service Contract interface:
[DataContract]
public structTestStructA
{
[DataMember]
double A;//Test;
[DataMember]
int B;
}
[DataContract]
public class HistoricalDataInfo
{
[DataMember]
public DateTime Timestamp { get; set; }
[DataMember]
public object Data { get; set; }
}
[ServiceContract]
public interface IArchiveService
{
[OperationContract]
HistoricalDataInfo[] GetGlobalLogDataA(...);
}
so wenn ich nun "TestStructA" dem object des HistoricalDataInfo zuweise, gibt es eine Timeout exceoption im wcf service! Wenn ich stattdessen "Int16" dem object zu weise funktioniert es!! Aber es müsste doch gehen oder? Oder hab ich was falsch gemacht?
Guten Morgen,
jede Anwendung hat ja eine einge Config Date, welche wie die eigentlich Apllikation heist benannt ist. Nun gibts aber noch eine App.Config.
via:
var _serverConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
_serverConfiguration.Sections.Add("Sectioname", new SectionObject(...));
dieser code fügt mir ja ne section in die Exe Configuruation datei, und nich in die App.Config.! Wie bekomm ich das hin das was in die App.config geschrieben wird?
grüße
Hallo Doltsche,
Mit Semantik hat der hier aufgetretene Fehler trotzdem nicht viel zu tun.
Beim Programmieren beziehen sich Begriffe wie Syntax und Semantik auf die Programmiersprache an sich. Die Syntax beschreibt wie die Sprachelemente geschrieben werden, und die Semantik beschreibt wie deren Beziehungen (z.b. Reihenfolge der Schlüsselwörter bei einer Methodendifinition) zueinander sind.
In deinem Fall von Semantikfehler zu sprechen macht keinen Sinn. Streng genommen macht das Programm erstmal gar keinen Fehler, da der Programmierer einfach nicht die entsprechende Funktionalität implementiert hat. Weder ist irgendein Fehler im Quelltext, noch macht die Runtime irgendwas falsch - es liegt einfach am Programmierer.
Wenn man so argumentiert wie du könnte man jedes Programm als semantisch fehlerhaft bezeichnen, da es nicht die Funktinalität bietet die man erwartet. Mit meinem Texteditor kann ich keine Videos aufnehmen - ist er deshalb fehlerhaft?
Und warum muss man alle .NET-Objekte mit gcnew initialisieren, obwohl man keinen Zeiger (oder Verweis) haben will, sondern nur ein Objekt?
Muss man nicht. Du kannst ebensogut auf dem "Stack" allozieren, das Objekt wird danach automatisch zerstört (wenn der Scope endet).
int main(array<System::String^^> TheString)
// oder:
int main(array<System::String> ^^TheString)
Naja.. ist so weil ist so, per Definition. Weil ein String nicht einfach eine Zeichenkette mit terminierendem Null ist. Ist es bei C++ auch nicht mehr (std::string).
Edit: Du kannst dir auch sagen, dass das Memory Model von .NET dies nicht zulässt.
Simon