|
See, that's what I thought, too. I couldn't make either combinatin work, though it's completely feasible that I'm just missing something. I'll post the answer when/if I find it. Thanks, though.
Kyosa Jamie Nordmeyer - Taekwondo Yi (2nd) Dan
Portland, Oregon, USA
|
|
|
|
|
Summary Question: How can I do pointer fix uping using XML Serialization?
I'm getting tripped up over one idea when performming XML serialization.
Lets say I have a simple class structure where Students have Teachers.
<br />
class Teacher<br />
{<br />
public string name;<br />
}<br />
<br />
class Student<br />
{<br />
public Teacher mTeacher;<br />
}<br />
<br />
main<br />
{<br />
Teacher teacher = new Teacher();<br />
teacher.name = "Mr Smith";<br />
<br />
Student [] students = new Student[2];<br />
<br />
students[0] = new Student();<br />
students[1] = new Student();<br />
<br />
students[0].mTeacher = teacher;<br />
students[1].mTeacher = teacher;<br />
<br />
...<br />
<br />
SERIALIZE students[]<br />
...<br />
DESERIALIZE students[]<br />
<br />
}<br />
What I'm finding is that when I serialize/deserialize, I'll find that each student has their own unique teacher "Mr Smith" rather than both students sharing the same teacher.
When I do this kind of serialization using a BinaryFormatter I find that the teacher is not created twice and that the serializer realizes that this object has already been serialized and essentially stores a pointer and when the object is serialized, that pointer is fixed up.
Summary Question: How can I do pointer fix uping using XML Serialization?
|
|
|
|
|
IIRC, the XML Serializer doesn't support object pointers. The values they point to are searialized. I THINK! I can't confirm this or find the concrete docs that explain this.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I cannot imagine it would matter whether you use BinarySerialization or XML serialization; fact is, the serializer has no idea about whose point to whom. You're going to have to manually set the teacher reference to share the same object if you it to act that way.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Little House on the Flickr
Judah Himango
|
|
|
|
|
|
Wow. I stand corrected. Thanks for the info.
|
|
|
|
|
There is alot of potential problems though.
If your app relies on instances serialized in its runtime then you have to do fixups when deserializtion (that is if you can 'reset' the app state). The big problem now is how to correctly identify the type 'value' and hence map it, as the deserialized object and the currentobject will be a memberwiseclone of each other, but still 2 objects. If you have a valuetype, then you wont have this case. So the only other way is mutable and unmutable reference classes. Typically you would just override equals and hashcode and this would work fine on a hashtable. But as soon as you have a mutable object, where the hashcode is dynamic it gets tricky.
A solution to this problem is to have a fixup hashtable mapping T to T. Then at deserialization you do fixups[myobj] = myobj , and allways use fixups[myobj] to retrieve the actual object. Its all a bit tricky, but it works well
xacc.ide-0.1.1.10 - now with AutoComplete(kinda)
|
|
|
|
|
What's the best way to display a web page on a windows form? I'm using VS.NET 2003 and C#
-- modified at 15:20 Tuesday 10th January, 2006
|
|
|
|
|
Add a WebBrowser control from the toolbox, then you can navigate to a webpage with code such as;
webBrowser1.Navigate("http://www.codeproject.com");
|
|
|
|
|
how can i get my computer in a Standby mode using c#?
simply i want to get my pc sleep and wake it up after a period of time
-- modified at 7:59 Wednesday 11th January, 2006
|
|
|
|
|
shabonaa wrote: how can i get my computer in a safe mode using c#?
You can't. Safe mode is only available on boot.
shabonaa wrote: simply i want to get my pc sleep and wake it up after a period of time
Far from simple. You're looking at using the Windows Power Management functions to set a wake timer and put the system in StandBy. See this[^] for more information. I wasn't able to find any examples of anyone using this. It's just functionality that's rarely ever used from inside an application.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dave Kreskowiak wrote: shabonaa wrote:
how can i get my computer in a safe mode using c#?
even using APIs?
THE ONLY WISDOM THAT YOU KNOW YOU KNOW NOTHING
|
|
|
|
|
Is it possible that you mean "Sleep" or "Standby" instead (S3/S1) ?
If you want to "force" your computer into Safe-Mode (which you get when you boot, press F8 and mark "safe mode"), you will have to deliberately crash your computer in a bad way, so that Windows (on reboot) automatically chooses "Safe Mode" because it thinks that it might be broken.
Well, that might happen. If you try to force your computer into a failsafe modus, you might DESTROY your data in the process, so I sincerely suggest you dont try it.
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
sorry there was a missunderstading i meaned standbye not safe mode
|
|
|
|
|
does anybody have queen mc_klaski(the method on making breif bool algebra) method code.
if somebody has, please send me or present me some links.
thanks alot...
thanks
rastegar
|
|
|
|
|
I have serval forms f1 f2 f3 f4 in my application. How can i make f1 f2 f3 f4 exact same size in width and height?
THX
|
|
|
|
|
f4.Width = 300;
f4.Height = 300;
f1.Width = f2.Width = f3.Width = f4.Width;
f1.Height = f2.Height = f3.Height = f4.Height;
"we must lose precision to make significant statements about complex systems."
-deKorvin on uncertainty
|
|
|
|
|
assume u want to make them all the same size of f1 then
in f2 do that:
f1 TempForm=new f1();
f2.Size=f1.Size;
the same for f3 and f4.
|
|
|
|
|
I overload operator== in a class, say, MyClass, like this
public static bool operator==(MyClass lhs, MyClass rhs) {<br />
return lhs.someValue == rhs.someValue;<br />
}
Which will fail if either lhs or rhs is null. Fix
public static bool operator==(MyClass lhs, MyClass rhs) {<br />
try {<br />
return lhs.someValue == rhs.someValue;<br />
} catch (Exception) {<br />
return false;<br />
}<br />
}
But this will result in the following code not working
void MyFunction(MyClass anInstance) {<br />
if (anInstance == null) {<br />
}<br />
}
Fix
public static bool operator==(MyClass lhs, MyClass rhs) {<br />
if (lhs == null && rhs == null) {<br />
return true;<br />
}<br />
<br />
try {<br />
return lhs.someValue == rhs.someValue;<br />
} catch (Exception) {<br />
return false;<br />
}<br />
}
But this causes a stack overflow since the check on "lhs == null" calls operator== again ...
Help someone pls
-- modified at 15:05 Tuesday 10th January, 2006
|
|
|
|
|
I've never done anything with operator overloading, this is just a guess tho:
if(Object.Equals(lhs, null) && Object.Equals(rhs, null)) return true;
Dunno if this works, but it's worth a try.
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
You're right check works!
And as I see it, you have to do this whenever you overload operator== !!!
Thx
|
|
|
|
|
Only overload operator== on value (i.e., non-reference) types such as structures and enumerations. You'll be much safer.
"we must lose precision to make significant statements about complex systems."
-deKorvin on uncertainty
|
|
|
|
|
FxCop says that you should not override operator== on reference types ]^].
Instead, override Object.Equals( object ) and use that in your code:
MyClass a = new MyClass( someValue );
MyClass b = new MyClass( someValue );
MyClass c = new MyClass( anotherValue );
a.Equals( b );
a.Equals( c ); Now, you can handle null s.
"we must lose precision to make significant statements about complex systems."
-deKorvin on uncertainty
|
|
|
|
|
Ok, and that advice might be due to the exact reason i've just discovered.
Yes using Equals will do the trick, but the code is much less intuitive to read, as opposed to some syntactic sugar, like "a == b"
Thx
|
|
|
|
|
Whoa, that FxCop found 100 errors/warnings in my little 3D-engine. Is there a reason to be afraid now?
regards
modified 12-Sep-18 21:01pm.
|
|
|
|