Lionel
2007-09-24 16:04:43 UTC
Hi All,
I wrote a custom CodeDom serializer class that first invokes default
serialization for a class, after which it does some custom code
generation.
public override object Serialize(IDesignerSerializationManager
manager, object value)
{
CodeDomSerializer baseSerializer =
(CodeDomSerializer)manager.GetSerializer(myBaseType,
typeof(CodeDomSerializer));
object codeObject = baseSerializer.Serialize(manager, value);
//custom code gen here...
}
My class uses the following attributes to specify the above
serializer:
[DesignerSerializer(typeof(MyCustomSerializer),
typeof(CodeDomSerializer))]
public partial class MyClass : UserControl
{
.....
}
The custom code looks fine, but the MyClass instance variable is being
generated local to the InitializeComponent() method:
private void InitializeComponent()
{
MyControls.MyClass myClass1 = new MyControls.MyClass();
...
//
// MyClass code generator
// Updated on Monday, September 24, 2007 at 4:40:42 PM
//
myClass1.ShowImage = true;
myClass1.Location = new System.Drawing.Point(149, 3);
...
}
I want the instance to be defined as a class level variable, rather
than inside InitializeComponent(). I have read that an
InstanceDescriptor can help specify this, but am as yet unable to get
it working.
Would appreciate any insights you have on doing so.
Thanks,
Lionel
I wrote a custom CodeDom serializer class that first invokes default
serialization for a class, after which it does some custom code
generation.
public override object Serialize(IDesignerSerializationManager
manager, object value)
{
CodeDomSerializer baseSerializer =
(CodeDomSerializer)manager.GetSerializer(myBaseType,
typeof(CodeDomSerializer));
object codeObject = baseSerializer.Serialize(manager, value);
//custom code gen here...
}
My class uses the following attributes to specify the above
serializer:
[DesignerSerializer(typeof(MyCustomSerializer),
typeof(CodeDomSerializer))]
public partial class MyClass : UserControl
{
.....
}
The custom code looks fine, but the MyClass instance variable is being
generated local to the InitializeComponent() method:
private void InitializeComponent()
{
MyControls.MyClass myClass1 = new MyControls.MyClass();
...
//
// MyClass code generator
// Updated on Monday, September 24, 2007 at 4:40:42 PM
//
myClass1.ShowImage = true;
myClass1.Location = new System.Drawing.Point(149, 3);
...
}
I want the instance to be defined as a class level variable, rather
than inside InitializeComponent(). I have read that an
InstanceDescriptor can help specify this, but am as yet unable to get
it working.
Would appreciate any insights you have on doing so.
Thanks,
Lionel