本文整理汇总了C#中System.CodeDom.CodePropertyReferenceExpression.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# CodePropertyReferenceExpression.GetType方法的具体用法?C# CodePropertyReferenceExpression.GetType怎么用?C# CodePropertyReferenceExpression.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.CodeDom.CodePropertyReferenceExpression
的用法示例。
在下文中一共展示了CodePropertyReferenceExpression.GetType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SerializeContentProperty
private void SerializeContentProperty (IDesignerSerializationManager manager, object instance,
PropertyDescriptor descriptor, CodeStatementCollection statements)
{
CodePropertyReferenceExpression propRef = new CodePropertyReferenceExpression ();
propRef.PropertyName = descriptor.Name;
object propertyValue = descriptor.GetValue (instance);
ExpressionContext expressionCtx = manager.Context[typeof (ExpressionContext)] as ExpressionContext;
if (expressionCtx != null && expressionCtx.PresetValue == instance)
propRef.TargetObject = expressionCtx.Expression;
else
propRef.TargetObject = base.SerializeToExpression (manager, instance);
CodeDomSerializer serializer = manager.GetSerializer (propertyValue.GetType (), typeof (CodeDomSerializer)) as CodeDomSerializer;
if (propRef.TargetObject != null && serializer != null) {
manager.Context.Push (new ExpressionContext (propRef, propRef.GetType (), null, propertyValue));
object serialized = serializer.Serialize (manager, propertyValue);
manager.Context.Pop ();
CodeStatementCollection serializedStatements = serialized as CodeStatementCollection;
if (serializedStatements != null)
statements.AddRange (serializedStatements);
CodeStatement serializedStatement = serialized as CodeStatement;
if (serializedStatement != null)
statements.Add (serializedStatement);
CodeExpression serializedExpr = serialized as CodeExpression;
if (serializedExpr != null)
statements.Add (new CodeAssignStatement (propRef, serializedExpr));
}
}
示例2: SerializeContentProperty
private void SerializeContentProperty (IDesignerSerializationManager manager, object component,
PropertyDescriptor descriptor, CodeStatementCollection statements)
{
CodePropertyReferenceExpression propRef = new CodePropertyReferenceExpression ();
propRef.PropertyName = descriptor.Name;
object value = descriptor.GetValue (component);
ExpressionContext expressionCtx = manager.Context[typeof (ExpressionContext)] as ExpressionContext;
if (expressionCtx != null && expressionCtx.PresetValue == component) {
propRef.TargetObject = expressionCtx.Expression;
} else {
manager.Context.Push (new CodeStatementCollection ());
propRef.TargetObject = TryGetCachedExpression (manager, component, propRef, value);
manager.Context.Pop ();
}
CodeDomSerializer serializer = manager.GetSerializer (value.GetType (), typeof (CodeDomSerializer)) as CodeDomSerializer;
if (propRef.TargetObject != null && serializer != null) {
// request full serialization (presetvalue == instance)
//
manager.Context.Push (new ExpressionContext (propRef, propRef.GetType (), component, value));
object serialized = serializer.Serialize (manager, value);
manager.Context.Pop ();
CodeStatementCollection serializedStatements = serialized as CodeStatementCollection;
if (serializedStatements != null)
statements.AddRange (serializedStatements);
CodeStatement serializedStatement = serialized as CodeStatement;
if (serializedStatement != null)
statements.Add (serializedStatement);
CodeExpression serializedExpr = serialized as CodeExpression;
if (serializedExpr != null)
statements.Add (new CodeAssignStatement (propRef, serializedExpr));
}
}