You've already forked linux-packaging-mono
Imported Upstream version 5.2.0.175
Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
parent
4bdbaf4a88
commit
966bba02bb
@ -101,47 +101,47 @@ namespace System.ComponentModel.Design.Serialization
|
||||
}
|
||||
|
||||
public virtual CodeStatementCollection SerializeMember (IDesignerSerializationManager manager,
|
||||
object owningobject, MemberDescriptor member)
|
||||
object owningObject, MemberDescriptor member)
|
||||
{
|
||||
if (member == null)
|
||||
throw new ArgumentNullException ("member");
|
||||
if (owningobject == null)
|
||||
throw new ArgumentNullException ("owningobject");
|
||||
if (owningObject == null)
|
||||
throw new ArgumentNullException ("owningObject");
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
|
||||
CodeStatementCollection statements = new CodeStatementCollection ();
|
||||
|
||||
CodeExpression expression = base.GetExpression (manager, owningobject);
|
||||
CodeExpression expression = base.GetExpression (manager, owningObject);
|
||||
if (expression == null) {
|
||||
string name = manager.GetName (owningobject);
|
||||
string name = manager.GetName (owningObject);
|
||||
if (name == null)
|
||||
name = base.GetUniqueName (manager, owningobject);
|
||||
name = base.GetUniqueName (manager, owningObject);
|
||||
expression = new CodeVariableReferenceExpression (name);
|
||||
base.SetExpression (manager, owningobject, expression);
|
||||
base.SetExpression (manager, owningObject, expression);
|
||||
}
|
||||
|
||||
if (member is PropertyDescriptor)
|
||||
base.SerializeProperty (manager, statements, owningobject, (PropertyDescriptor) member);
|
||||
base.SerializeProperty (manager, statements, owningObject, (PropertyDescriptor) member);
|
||||
if (member is EventDescriptor)
|
||||
base.SerializeEvent (manager, statements, owningobject, (EventDescriptor) member);
|
||||
base.SerializeEvent (manager, statements, owningObject, (EventDescriptor) member);
|
||||
|
||||
return statements;
|
||||
}
|
||||
|
||||
public virtual CodeStatementCollection SerializeMemberAbsolute (IDesignerSerializationManager manager,
|
||||
object owningobject, MemberDescriptor member)
|
||||
object owningObject, MemberDescriptor member)
|
||||
{
|
||||
if (member == null)
|
||||
throw new ArgumentNullException ("member");
|
||||
if (owningobject == null)
|
||||
throw new ArgumentNullException ("owningobject");
|
||||
if (owningObject == null)
|
||||
throw new ArgumentNullException ("owningObject");
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
|
||||
SerializeAbsoluteContext context = new SerializeAbsoluteContext (member);
|
||||
manager.Context.Push (context);
|
||||
CodeStatementCollection result = this.SerializeMember (manager, owningobject, member);
|
||||
CodeStatementCollection result = this.SerializeMember (manager, owningObject, member);
|
||||
manager.Context.Pop ();
|
||||
return result;
|
||||
}
|
||||
|
@ -67,18 +67,18 @@ namespace System.ComponentModel.Design.Serialization
|
||||
{
|
||||
}
|
||||
|
||||
protected CodeExpression SerializeToExpression (IDesignerSerializationManager manager, object instance)
|
||||
protected CodeExpression SerializeToExpression (IDesignerSerializationManager manager, object value)
|
||||
{
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
|
||||
CodeExpression expression = null;
|
||||
if (instance != null)
|
||||
expression = this.GetExpression (manager, instance); // 1 - IDesignerSerializationManager.GetExpression
|
||||
if (value != null)
|
||||
expression = this.GetExpression (manager, value); // 1 - IDesignerSerializationManager.GetExpression
|
||||
if (expression == null) {
|
||||
CodeDomSerializer serializer = this.GetSerializer (manager, instance); // 2 - manager.GetSerializer().Serialize()
|
||||
CodeDomSerializer serializer = this.GetSerializer (manager, value); // 2 - manager.GetSerializer().Serialize()
|
||||
if (serializer != null) {
|
||||
object serialized = serializer.Serialize (manager, instance);
|
||||
object serialized = serializer.Serialize (manager, value);
|
||||
expression = serialized as CodeExpression; // 3 - CodeStatement or CodeStatementCollection
|
||||
if (expression == null) {
|
||||
CodeStatement statement = serialized as CodeStatement;
|
||||
@ -88,8 +88,8 @@ namespace System.ComponentModel.Design.Serialization
|
||||
CodeStatementCollection contextStatements = null;
|
||||
|
||||
StatementContext context = manager.Context[typeof (StatementContext)] as StatementContext;
|
||||
if (context != null && instance != null)
|
||||
contextStatements = context.StatementCollection[instance];
|
||||
if (context != null && value != null)
|
||||
contextStatements = context.StatementCollection[value];
|
||||
|
||||
if (contextStatements == null)
|
||||
contextStatements = manager.Context[typeof (CodeStatementCollection)] as CodeStatementCollection;
|
||||
@ -102,25 +102,25 @@ namespace System.ComponentModel.Design.Serialization
|
||||
}
|
||||
}
|
||||
}
|
||||
if (expression == null && instance != null)
|
||||
expression = this.GetExpression (manager, instance); // 4
|
||||
if (expression == null && value != null)
|
||||
expression = this.GetExpression (manager, value); // 4
|
||||
} else {
|
||||
ReportError (manager, "No serializer found for type '" + instance.GetType ().Name + "'");
|
||||
ReportError (manager, "No serializer found for type '" + value.GetType ().Name + "'");
|
||||
}
|
||||
}
|
||||
return expression;
|
||||
}
|
||||
|
||||
protected CodeDomSerializer GetSerializer (IDesignerSerializationManager manager, object instance)
|
||||
protected CodeDomSerializer GetSerializer (IDesignerSerializationManager manager, object value)
|
||||
{
|
||||
DesignerSerializerAttribute attrInstance, attrType;
|
||||
attrType = attrInstance = null;
|
||||
|
||||
CodeDomSerializer serializer = null;
|
||||
if (instance == null)
|
||||
if (value == null)
|
||||
serializer = this.GetSerializer (manager, null);
|
||||
else {
|
||||
AttributeCollection attributes = TypeDescriptor.GetAttributes (instance);
|
||||
AttributeCollection attributes = TypeDescriptor.GetAttributes (value);
|
||||
foreach (Attribute a in attributes) {
|
||||
DesignerSerializerAttribute designerAttr = a as DesignerSerializerAttribute;
|
||||
if (designerAttr != null && manager.GetType (designerAttr.SerializerBaseTypeName) == typeof (CodeDomSerializer)) {
|
||||
@ -129,7 +129,7 @@ namespace System.ComponentModel.Design.Serialization
|
||||
}
|
||||
}
|
||||
|
||||
attributes = TypeDescriptor.GetAttributes (instance.GetType ());
|
||||
attributes = TypeDescriptor.GetAttributes (value.GetType ());
|
||||
foreach (Attribute a in attributes) {
|
||||
DesignerSerializerAttribute designerAttr = a as DesignerSerializerAttribute;
|
||||
if (designerAttr != null && manager.GetType (designerAttr.SerializerBaseTypeName) == typeof (CodeDomSerializer)) {
|
||||
@ -143,47 +143,47 @@ namespace System.ComponentModel.Design.Serialization
|
||||
if (attrType != null && attrInstance != null && attrType.SerializerTypeName != attrInstance.SerializerTypeName)
|
||||
serializer = Activator.CreateInstance (manager.GetType (attrInstance.SerializerTypeName)) as CodeDomSerializer;
|
||||
else
|
||||
serializer = this.GetSerializer (manager, instance.GetType ());
|
||||
serializer = this.GetSerializer (manager, value.GetType ());
|
||||
}
|
||||
|
||||
return serializer;
|
||||
}
|
||||
|
||||
protected CodeDomSerializer GetSerializer (IDesignerSerializationManager manager, Type instanceType)
|
||||
protected CodeDomSerializer GetSerializer (IDesignerSerializationManager manager, Type valueType)
|
||||
{
|
||||
return manager.GetSerializer (instanceType, typeof (CodeDomSerializer)) as CodeDomSerializer;
|
||||
return manager.GetSerializer (valueType, typeof (CodeDomSerializer)) as CodeDomSerializer;
|
||||
}
|
||||
|
||||
protected CodeExpression GetExpression (IDesignerSerializationManager manager, object instance)
|
||||
protected CodeExpression GetExpression (IDesignerSerializationManager manager, object value)
|
||||
{
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
if (instance == null)
|
||||
throw new ArgumentNullException ("instance");
|
||||
if (value == null)
|
||||
throw new ArgumentNullException ("value");
|
||||
|
||||
CodeExpression expression = null;
|
||||
|
||||
ExpressionTable expressions = manager.Context[typeof (ExpressionTable)] as ExpressionTable;
|
||||
if (expressions != null) // 1st try: ExpressionTable
|
||||
expression = expressions [instance] as CodeExpression;
|
||||
expression = expressions [value] as CodeExpression;
|
||||
|
||||
if (expression == null) { // 2nd try: RootContext
|
||||
RootContext context = manager.Context[typeof (RootContext)] as RootContext;
|
||||
if (context != null && context.Value == instance)
|
||||
if (context != null && context.Value == value)
|
||||
expression = context.Expression;
|
||||
}
|
||||
|
||||
if (expression == null) { // 3rd try: IReferenceService (instance.property.property.property
|
||||
string name = manager.GetName (instance);
|
||||
string name = manager.GetName (value);
|
||||
if (name == null || name.IndexOf (".") == -1) {
|
||||
IReferenceService service = manager.GetService (typeof (IReferenceService)) as IReferenceService;
|
||||
if (service != null) {
|
||||
name = service.GetName (instance);
|
||||
name = service.GetName (value);
|
||||
if (name != null && name.IndexOf (".") != -1) {
|
||||
string[] parts = name.Split (new char[] { ',' });
|
||||
instance = manager.GetInstance (parts[0]);
|
||||
if (instance != null) {
|
||||
expression = SerializeToExpression (manager, instance);
|
||||
value = manager.GetInstance (parts[0]);
|
||||
if (value != null) {
|
||||
expression = SerializeToExpression (manager, value);
|
||||
if (expression != null) {
|
||||
for (int i=1; i < parts.Length; i++)
|
||||
expression = new CodePropertyReferenceExpression (expression, parts[i]);
|
||||
@ -196,19 +196,19 @@ namespace System.ComponentModel.Design.Serialization
|
||||
return expression;
|
||||
}
|
||||
|
||||
protected void SetExpression (IDesignerSerializationManager manager, object instance, CodeExpression expression)
|
||||
protected void SetExpression (IDesignerSerializationManager manager, object value, CodeExpression expression)
|
||||
{
|
||||
SetExpression (manager, instance, expression, false);
|
||||
SetExpression (manager, value, expression, false);
|
||||
}
|
||||
|
||||
// XXX: isPreset - what does this do when set?
|
||||
//
|
||||
protected void SetExpression (IDesignerSerializationManager manager, object instance, CodeExpression expression, bool isPreset)
|
||||
protected void SetExpression (IDesignerSerializationManager manager, object value, CodeExpression expression, bool isPreset)
|
||||
{
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
if (instance == null)
|
||||
throw new ArgumentNullException ("instance");
|
||||
if (value == null)
|
||||
throw new ArgumentNullException ("value");
|
||||
if (expression == null)
|
||||
throw new ArgumentNullException ("expression");
|
||||
|
||||
@ -218,7 +218,7 @@ namespace System.ComponentModel.Design.Serialization
|
||||
manager.Context.Append (expressions);
|
||||
}
|
||||
|
||||
expressions[instance] = expression;
|
||||
expressions[value] = expression;
|
||||
}
|
||||
|
||||
protected bool IsSerialized (IDesignerSerializationManager manager, object value)
|
||||
@ -227,14 +227,14 @@ namespace System.ComponentModel.Design.Serialization
|
||||
}
|
||||
|
||||
// XXX: What should honorPreset do?
|
||||
protected bool IsSerialized (IDesignerSerializationManager manager, object instance, bool honorPreset)
|
||||
protected bool IsSerialized (IDesignerSerializationManager manager, object value, bool honorPreset)
|
||||
{
|
||||
if (instance == null)
|
||||
throw new ArgumentNullException ("instance");
|
||||
if (value == null)
|
||||
throw new ArgumentNullException ("value");
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
|
||||
if (this.GetExpression (manager, instance) != null)
|
||||
if (this.GetExpression (manager, value) != null)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
@ -390,20 +390,20 @@ namespace System.ComponentModel.Design.Serialization
|
||||
return manager.CreateInstance (type, parameters, name, addToContainer);
|
||||
}
|
||||
|
||||
protected string GetUniqueName (IDesignerSerializationManager manager, object instance)
|
||||
protected string GetUniqueName (IDesignerSerializationManager manager, object value)
|
||||
{
|
||||
if (instance == null)
|
||||
throw new ArgumentNullException ("instance");
|
||||
if (value == null)
|
||||
throw new ArgumentNullException ("value");
|
||||
if (manager == null)
|
||||
throw new ArgumentNullException ("manager");
|
||||
|
||||
string name = manager.GetName (instance);
|
||||
string name = manager.GetName (value);
|
||||
if (name == null) {
|
||||
INameCreationService service = manager.GetService (typeof (INameCreationService)) as INameCreationService;
|
||||
name = service.CreateName (null, instance.GetType ());
|
||||
name = service.CreateName (null, value.GetType ());
|
||||
if (name == null)
|
||||
name = instance.GetType ().Name.ToLower ();
|
||||
manager.SetName (instance, name);
|
||||
name = value.GetType ().Name.ToLower ();
|
||||
manager.SetName (value, name);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
@ -220,7 +220,7 @@ namespace System.ComponentModel.Design.Serialization
|
||||
return instance;
|
||||
}
|
||||
|
||||
public object GetSerializer (Type componentType, Type serializerType)
|
||||
public object GetSerializer (Type objectType, Type serializerType)
|
||||
{
|
||||
VerifyInSession ();
|
||||
|
||||
@ -229,17 +229,17 @@ namespace System.ComponentModel.Design.Serialization
|
||||
|
||||
object serializer = null;
|
||||
|
||||
if (componentType != null) {
|
||||
if (objectType != null) {
|
||||
// try 1: from cache
|
||||
//
|
||||
_serializersCache.TryGetValue (componentType, out serializer);
|
||||
_serializersCache.TryGetValue (objectType, out serializer);
|
||||
|
||||
// check for provider attribute and add it to the list of providers
|
||||
//
|
||||
if (serializer != null && !serializerType.IsAssignableFrom (serializer.GetType ()))
|
||||
serializer = null;
|
||||
|
||||
AttributeCollection attributes = TypeDescriptor.GetAttributes (componentType);
|
||||
AttributeCollection attributes = TypeDescriptor.GetAttributes (objectType);
|
||||
DefaultSerializationProviderAttribute providerAttribute = attributes[typeof (DefaultSerializationProviderAttribute)]
|
||||
as DefaultSerializationProviderAttribute;
|
||||
if (providerAttribute != null && this.GetType (providerAttribute.ProviderTypeName) == serializerType) {
|
||||
@ -252,8 +252,8 @@ namespace System.ComponentModel.Design.Serialization
|
||||
|
||||
// try 2: DesignerSerializerAttribute
|
||||
//
|
||||
if (serializer == null && componentType != null) {
|
||||
AttributeCollection attributes = TypeDescriptor.GetAttributes (componentType);
|
||||
if (serializer == null && objectType != null) {
|
||||
AttributeCollection attributes = TypeDescriptor.GetAttributes (objectType);
|
||||
DesignerSerializerAttribute serializerAttribute = attributes[typeof (DesignerSerializerAttribute)] as DesignerSerializerAttribute;
|
||||
if (serializerAttribute != null &&
|
||||
this.GetType (serializerAttribute.SerializerBaseTypeName) == serializerType) {
|
||||
@ -266,14 +266,14 @@ namespace System.ComponentModel.Design.Serialization
|
||||
}
|
||||
|
||||
if (serializer != null)
|
||||
_serializersCache[componentType] = serializer;
|
||||
_serializersCache[objectType] = serializer;
|
||||
}
|
||||
|
||||
// try 3: from provider
|
||||
//
|
||||
if (serializer == null && _serializationProviders != null) {
|
||||
foreach (IDesignerSerializationProvider provider in _serializationProviders) {
|
||||
serializer = provider.GetSerializer (this, null, componentType, serializerType);
|
||||
serializer = provider.GetSerializer (this, null, objectType, serializerType);
|
||||
if (serializer != null)
|
||||
break;
|
||||
}
|
||||
@ -332,19 +332,19 @@ namespace System.ComponentModel.Design.Serialization
|
||||
_serializationCompleteHandler (this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
protected virtual Type GetType (string name)
|
||||
protected virtual Type GetType (string typeName)
|
||||
{
|
||||
if (name == null)
|
||||
throw new ArgumentNullException ("name");
|
||||
if (typeName == null)
|
||||
throw new ArgumentNullException ("typeName");
|
||||
|
||||
this.VerifyInSession ();
|
||||
|
||||
Type result = null;
|
||||
ITypeResolutionService typeResSvc = this.GetService (typeof (ITypeResolutionService)) as ITypeResolutionService;
|
||||
if (typeResSvc != null)
|
||||
result = typeResSvc.GetType (name);
|
||||
result = typeResSvc.GetType (typeName);
|
||||
if (result == null)
|
||||
result = Type.GetType (name);
|
||||
result = Type.GetType (typeName);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -491,16 +491,16 @@ namespace System.ComponentModel.Design.Serialization
|
||||
}
|
||||
#endregion
|
||||
|
||||
object IServiceProvider.GetService (Type service)
|
||||
object IServiceProvider.GetService (Type serviceType)
|
||||
{
|
||||
return this.GetService (service);
|
||||
return this.GetService (serviceType);
|
||||
}
|
||||
|
||||
protected virtual object GetService (Type service)
|
||||
protected virtual object GetService (Type serviceType)
|
||||
{
|
||||
object result = null;
|
||||
if (_serviceProvider != null)
|
||||
result = _serviceProvider.GetService (service);
|
||||
result = _serviceProvider.GetService (serviceType);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -54,9 +54,9 @@ namespace System.ComponentModel.Design.Serialization
|
||||
return _statements.GetEnumerator ();
|
||||
}
|
||||
|
||||
public CodeStatementCollection this[object owner]
|
||||
public CodeStatementCollection this[object statementOwner]
|
||||
{
|
||||
get { return _statements[owner] as CodeStatementCollection; }
|
||||
get { return _statements[statementOwner] as CodeStatementCollection; }
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
|
@ -40,13 +40,13 @@ namespace System.ComponentModel.Design.Serialization
|
||||
CodeExpression _expression;
|
||||
object _value;
|
||||
|
||||
public RootContext (CodeExpression expresion, object value)
|
||||
public RootContext (CodeExpression expression, object value)
|
||||
{
|
||||
if (expresion == null)
|
||||
if (expression == null)
|
||||
throw new ArgumentNullException ("expression");
|
||||
if (value == null)
|
||||
throw new ArgumentNullException ("value");
|
||||
_expression = expresion;
|
||||
_expression = expression;
|
||||
_value = value;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user