The thing is, I can't set it like that in the class, because the Kernel
property is of type "BaseKernel", of which "DefaultKernel" is a subclass
(this is basically a new serializer that supports concrete implementations
of abstract properties and list items). I tried also setting
defaultNamespace in my serializer, but the problem there is that I need to
set defautlNamespace *and* default element name in teh XmlRootAttribute,but
I can't set both without also having to provide some other params (the last
ctor for that attribute) that I cannot pass in as null, as it throws an
exception in XRA.
The way I think I am going to go is to declare my stuff like this:
<AppConfigObject>
<Kernel>
<MyNamespace.DefaultKernel Name="..." Attr2="..."/>
</Kernel>
</AppConfigObject>
and just go through every assembly in the appdomain to look for
MyNamespace.DefaultKernel (it's a somewhat slow process, as it's heavy into
reflection and has to iterate through several assemblies, but this stuff is
all part of startup and not regular operation. Another downside is that I
can't have two assemblies in the appdomain with the same namespace + class,
but I can live with that limitation until I replace the config format with
XAML snippets)
"Christoph Schittko [MVP]" <ch********************@austin.rr.com> wrote in
message news:O9**************@TK2MSFTNGP11.phx.gbl...
Your XML document states that the <Kernel> element belongs to the
"MyNamespace.DefaultKernel, Kernel" namespace, but your serialization
attribute does not declare the namespace.
Try:
public class AppConfigObject {
[XmlElement(Namespace="MyNamespace.DefaultKernel, Kernel")]
public Kernel {...}
}
--
HTH
Christoph Schittko [MVP]
Software Architect, .NET Mentor
"Keith Patrick" <ri*******************@nospamhotmail.com> wrote in message
news:uK****************@TK2MSFTNGP11.phx.gbl... I've seen this come up before, but in my case, things are a little more
complex, and I'm having a tough time figuring out how to set an element
name
that works. I have a configuration file that is my serialized object
(I'm using a customer deserializer to add some more XAML-like capabilities):
<AppConfigObject>
<RuntimeType:Kernel xmlns:RuntimeType="MyNamespace.DefaultKernel,
Kernel"/>
</AppConfigObject>
public class AppConfigObject {
[XmlElement]
public Kernel {...}
}
Problem I have is deserializing the child node <Kernel> because it
always throws an error about "<Kernel xmlns='MyNamespace.DefaultKernel,
Kernel'> was not expected.". I'm hoping that it's just something I'm missing
(I've tried several combinations of element names and defaultNamespaces) and
it's
not that what I am trying is not possible.