本文整理汇总了C#中DocumentObject.GetValue方法的典型用法代码示例。如果您正苦于以下问题:C# DocumentObject.GetValue方法的具体用法?C# DocumentObject.GetValue怎么用?C# DocumentObject.GetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocumentObject
的用法示例。
在下文中一共展示了DocumentObject.GetValue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseAttributeStatement
/// <summary>
/// Parses a single statement in an attribute declaration block.
/// </summary>
private void ParseAttributeStatement(DocumentObject doc)
{
// Syntax is easy
// identifier: xxxxx
// or
// sequence of identifiers: xxx.yyy.zzz
//
// followed by: «=», «+=», «-=», or «{»
//
// Parser of rhs depends on the type of the l-value.
if (doc == null)
throw new ArgumentNullException("doc");
string valueName = "";
try
{
valueName = _scanner.Token;
ReadCode();
// Resolve path, if it exists.
object val;
while (Symbol == Symbol.Dot)
{
#if DEBUG_
if (valueName == "TabStops")
valueName.GetType();
#endif
Debug.Assert(doc != null, "Make ReSharper happy.");
val = doc.GetValue(valueName);
if (val == null)
{
DocumentObject documentObject = doc;
val = documentObject.CreateValue(valueName);
doc.SetValue(valueName, val);
}
AssertCondition(val != null, DomMsgID.InvalidValueName, valueName);
doc = val as DocumentObject;
AssertCondition(doc != null, DomMsgID.SymbolIsNotAnObject, valueName);
ReadCode();
AssertCondition(Symbol == Symbol.Identifier, DomMsgID.InvalidValueName, _scanner.Token);
valueName = _scanner.Token;
AssertCondition(valueName[0] != '_', DomMsgID.NoAccess, _scanner.Token);
#if DEBUG_
if (valueName == "TabStops")
valueName.GetType();
#endif
ReadCode();
}
Debug.Assert(doc != null, "Make ReSharper happy.");
switch (Symbol)
{
case Symbol.Assign:
//DomValueDescriptor is needed from assignment routine.
ValueDescriptor pvd = doc.Meta[valueName];
AssertCondition(pvd != null, DomMsgID.InvalidValueName, valueName);
ParseAssign(doc, pvd);
break;
case Symbol.PlusAssign:
case Symbol.MinusAssign:
// Hard-coded for TabStops only...
if (!(doc is ParagraphFormat))
ThrowParserException(DomMsgID.SymbolNotAllowed, _scanner.Token);
if (String.Compare(valueName, "TabStops", StringComparison.OrdinalIgnoreCase) != 0)
ThrowParserException(DomMsgID.InvalidValueForOperation, valueName, _scanner.Token);
ParagraphFormat paragraphFormat = (ParagraphFormat)doc;
TabStops tabStops = paragraphFormat.TabStops;
if (true) // HACK in ParseAttributeStatement
{
bool fAddItem = Symbol == Symbol.PlusAssign;
TabStop tabStop = new TabStop();
ReadCode();
if (Symbol == Symbol.BraceLeft)
{
ParseAttributeBlock(tabStop);
}
else if (Symbol == Symbol.StringLiteral || Symbol == Symbol.RealLiteral || Symbol == Symbol.IntegerLiteral)
{
// Special hack for tab stops...
Unit unit = Token;
tabStop.SetValue("Position", unit);
ReadCode();
}
else
ThrowParserException(DomMsgID.UnexpectedSymbol, Token);
if (fAddItem)
tabStops.AddTabStop(tabStop);
//.........这里部分代码省略.........
示例2: SetValue
/// <summary>
/// Sets the member of dom specified by name to val.
/// If a member with the specified name does not exist an ArgumentException will be thrown.
/// </summary>
public void SetValue(DocumentObject dom, string name, object val)
{
int dot = name.IndexOf('.');
if (dot == 0)
throw new ArgumentException(DomSR.InvalidValueName(name));
string trail = null;
if (dot > 0)
{
trail = name.Substring(dot + 1);
name = name.Substring(0, dot);
}
ValueDescriptor vd = this.vds[name];
if (vd == null)
throw new ArgumentException(DomSR.InvalidValueName(name));
if (trail != null)
{
//REVIEW DaSt: dom.GetValue(name) und rekursiv SetValue aufrufen,
// oder dom.GetValue(name.BisVorletzteElement) und erst SetValue aufrufen.
DocumentObject doc = dom.GetValue(name) as DocumentObject;
doc.SetValue(trail, val);
}
else
vd.SetValue(dom, val);
}
示例3: SetValue
/// <summary>
/// Sets the member of dom specified by name to val.
/// If a member with the specified name does not exist an ArgumentException will be thrown.
/// </summary>
public void SetValue(DocumentObject dom, string name, object val)
{
int dot = name.IndexOf('.');
if (dot == 0)
throw new ArgumentException(DomSR.InvalidValueName(name));
string trail = null;
if (dot > 0)
{
trail = name.Substring(dot + 1);
name = name.Substring(0, dot);
}
ValueDescriptor vd = _vds[name];
if (vd == null)
throw new ArgumentException(DomSR.InvalidValueName(name));
if (trail != null)
{
//REVIEW DaSt: dom.GetValue(name) and call SetValue recursively,
// or dom.GetValue(name.BisVorletzteElement) and then call SetValue?
DocumentObject doc = (DocumentObject)dom.GetValue(name);
doc.SetValue(trail, val);
}
else
vd.SetValue(dom, val);
}