Ihave simple component:

Code Snippet

public class MyComponent : Component
{
List _myObjectsList = new List();

public ReadOnlyCollection MyObjectsList
{
get { return _myObjectsList.AsReadOnly(); }
}

public MyComponent ()
{
_myObjectsList.Add(new MyObject());
_myObjectsList.Add(new MyObject());
_myObjectsList.Add(new MyObject());
}

}

public class MyObject
{
string _field1;

public string Field1
{
get { return _field1; }
set { _field1 = value; }
}
}

I want user to change values of Field1 in designer. I realize CodeDomSerializer for MyComponenet, it's serialize method contains such code:

Code Snippet

CodeAssignStatement statement = new CodeAssignStatement(
new CodeFieldReferenceExpression(new CodeVariableReferenceExpression(myComponent.Site.Name),
"MyObjectsList" + "[" + i.ToString() + "].Field1"),
new CodePrimitiveExpression(myComponent.MyObjectsList[i].Field1));
statements.Add(statement);

Please, help to write deserialize method.