|
The only way for the XML deserializer to read a <rootx> tag is to have a class with the correct definition, e.g. XmlRootX, which defines the entire tag.
If you think about it, the deserializer has to work this way. If it worked according to your suggestion, there would be no way to tell the difference between the valid XML code above and invalid XML code such as:
<rootX>
<data1> some info here </data1>
<badData327> more info here </badData327>
<coolList>
<item ... />
<item ... />
</coolList>
</rootX>
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack.
--Winston Churchill
|
|
|
|
|
I looked over your "test app" but did not run it.
Your class definitions and the way you are looking at the xml appear flawed (e.g. the "response" is a high level container that contains a "list"; "response" is NOT a "list" as your class definitions seem to imply).
It would have been easier to "Edit | Paste special | Xml as classes" in Visual Studio. Doing that, I got the following for your "not working XML":
[System.Xml.Serialization.XmlTypeAttribute( AnonymousType = true )]
[System.Xml.Serialization.XmlRootAttribute( Namespace = "", IsNullable = false )]
public partial class response {
private string methodField;
private responseResult[] answerField;
public string method {
get {
return this.methodField;
}
set {
this.methodField = value;
}
}
[System.Xml.Serialization.XmlArrayItemAttribute( "result", IsNullable = false )]
public responseResult[] answer {
get {
return this.answerField;
}
set {
this.answerField = value;
}
}
}
[System.Xml.Serialization.XmlTypeAttribute( AnonymousType = true )]
public partial class responseResult {
private string firstField;
private byte secondField;
private byte thirdField;
[System.Xml.Serialization.XmlAttributeAttribute()]
public string first {
get {
return this.firstField;
}
set {
this.firstField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte second {
get {
return this.secondField;
}
set {
this.secondField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte third {
get {
return this.thirdField;
}
set {
this.thirdField = value;
}
}
}
|
|
|
|
|
Hello,
I am using IE11
I would like to know the registry entries to check/uncheck the Properties "Use TLS 1.0, Use TLS 1.1, Use TLS 1.2. Also, the registry entry for uncheck/check the "Display intranet sites in compatibility view" under Tools/Compatibility Settins
Thanks for your help,
|
|
|
|
|
I don't see anything to do with C# in this question.
|
|
|
|
|
Well, i did the setting for IE9 using C#. If i do not know the entries i cannot move forward though. Thanks,
|
|
|
|
|
Did you know that you can easily find this information out for yourself? Use a utility such as RegShot[^] to take a snapshot of the registry, then make your changes. Take another snapshot, and it will output the items that changed.
|
|
|
|
|
|
Following is the working code which decodes UUEncoded information to the correct hex value:
Code:
string input = "MTA0ODU3NjAA=";
byte[] decoded = Convert.FromBase64String(input.TrimEnd(new char[] { '=' }));
String value = ASCIIEncoding.ASCII.GetString(decoded);
int output = Convert.ToInt32(value);
string temp = String.Format("{0:X02}{1:X02}{2:X02}", (output & 0xFF0000FF) >> 0, (output & 0xFF00FF00) >> 8, (output & 0xFFFF0000) >> 16);
Output: temp = "0000A0";
I am looking for help to reverse this process. Input: "0000A0" and get output as: "MTA0ODU3NjAA", since '=' are used for padding only.
|
|
|
|
|
And?
What help do you need?
What have you tried?
Where are you stuck?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I wrote the initial logic of converting the UUEncoded data to hex value. This hex value is being used in C# code.
Now I want to save it back as UUEncoded data. I am not sure how to reverse engineer it. Need some advise.
|
|
|
|
|
You wrote this:
string input = "MTA0ODU3NjAA=";
byte[] decoded = Convert.FromBase64String(input.TrimEnd(new char[] { '=' }));
String value = ASCIIEncoding.ASCII.GetString(decoded);
int output = Convert.ToInt32(value);
string temp = String.Format("{0:X02}{1:X02}{2:X02}", (output & 0xFF0000FF) >> 0, (output & 0xFF00FF00) >> 8, (output & 0xFFFF0000) >> 16);
And you can't reverse it?
Um. What part of the two relevant lines can't you understand?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
This is the one I am not able to reverse:
string temp = String.Format("{0:X02}{1:X02}{2:X02}", (output & 0xFF0000FF) >> 0, (output & 0xFF00FF00) >> 8, (output & 0xFFFF0000) >> 16);
Not good with these conversions.
|
|
|
|
|
What conversions?
All it does is extract the lowest three bytes and output them in little endian order a hex strings.
Now come on - be honest. You didn't write that, did you?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I did... You can search google, for the code and there will not be a single hit for similar code.
This was even posted by me on the same forum, couple of days back as the answer. PLEASE DON'T help if you are trying not to and prove that we are lying for what we are saying.
|
|
|
|
|
I'm not trying to prove anything!
All I'm sayign is: how come you wrote that code and don't understand what it does?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Okay... Sorry I got it in a bad way.
I did get the steps from a peer who had an idea. From that I read tons of articles and wrote step by step code. But, I didn't want to go through that process again, so was looking for a one line solution or may be optimize my approach for the already written code.
I can write C# but these conversions from hex to UUEncode and vice versa is not my cup of tea.
|
|
|
|
|
OK.
Look at the line you worte:
string temp = String.Format("{0:X02}{1:X02}{2:X02}", (output & 0xFF0000FF) >> 0, (output & 0xFF00FF00) >> 8, (output & 0xFFFF0000) >> 16);
Let's reformat that so it's more obvious whats happening:
string temp = String.Format("{0:X02}{1:X02}{2:X02}",
(output & 0xFF0000FF) >> 0,
(output & 0xFF00FF00) >> 8,
(output & 0xFFFF0000) >> 16);
The String.Format bit is trivial: output each of three values as two hex digits with leadign zeros if necessary.
The other three do the same thing, just they work on three different bytes of the input number. (Except if you pass though a negative number, it's all going to fail badly - that's the "FF" ate th left hand side adding in the top byte to all three vlaues)
The top one extracts the least significant byte: x & 0x00000FF
The middle one extracts the middle byte value x & 0x00FF00, then shifts if down eight bit places to move it to the least significant position.
The top one does teh same with the top value of teh three, moving it 16 bits down.
So if the output variable held 0x00FEDCBA:
The first part extracts 0xBA
The second extracts 0xDC
The third extracts 0xFE
Which is then converted to a string "BADCFE" - little endian format because the least significant byte is first.
So to reverse it, break the string into three parts with SubString, convert each part with int.Parse(part, NumberStyles.HexNumber) and use << to shift it back where it came from.
Simple enough?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Yeah.. Thanks a lot for the explanation.
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Hi All ,
Currently in our C#.net project, we are using MsE4.0 .It is working fine. In the interfaces (service contracts/operation Contracts) we have lot of "ref" keywords used. Now we would like to move to MsE5.0. It is not accepting "ref" keywords in interfaces(operation contracts)
Thus creating problems.
Could you please let me know if there are any good alternatives (third party tools) to MsE5.0 , that can handle/tackle the problems caused by having "ref" keywords in the interfaces(operation contracts) gracefully.
Appreciate your help.
Thanks,
Sudhakar
|
|
|
|
|
|
I want to create a traffic laws application by using winforms and c# but I don't know how to start !
Can you help me please
|
|
|
|
|
You will have to elaborate the idea further.
What will the application do? How will it work?
|
|
|
|
|
the application must contain tests and each test contains 30 questions and you must answer each question in a period of time after finished the test you get your score and the correction
|
|
|
|
|
Well you could use text and pictures on the win form to ask questions. Then have radio buttons for multiple choice questions or checking for different words in the questions that have a specific text answer.
Add to that a few buttons for back, next and finish.
I suggest you try to look at this first if you are new to C# and Win Forms:
MSDN tutorial[^]
I would start by making a form and trying to put in pictures/text, then forward and back for questions.
Then make one question and try to finish the quiz and show score and if the question is right or wrong. After that just add questions.
Hope this helps at least a bit. Have you tried anything yet ?
What is troubling you with starting the app ?
Make a plan what you need and how you would like to make it, sometimes that helps.
|
|
|
|