本文整理汇总了C#中System.Dynamic.ExpandoObject.Add方法的典型用法代码示例。如果您正苦于以下问题:C# System.Dynamic.ExpandoObject.Add方法的具体用法?C# System.Dynamic.ExpandoObject.Add怎么用?C# System.Dynamic.ExpandoObject.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Dynamic.ExpandoObject
的用法示例。
在下文中一共展示了System.Dynamic.ExpandoObject.Add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetObjectFromMetadata
private object GetObjectFromMetadata(TreeDirectory metadata, TreeDirectory hirachciDirectory)
{
if (metadata.Element.Options.IsArray)
{
var arreyElemnts = metadata.Childrean.Where(x => x.IsArrayElement).OrderBy(x => x.ElementArrayIndex);
object[] array = arreyElemnts.Select(y => GetObjectFromMetadata(y, hirachciDirectory)).ToArray();
if (_delocalizing && array.All(x => x is LocalizedString))
{
CultureInfo systemCulture = System.Globalization.CultureInfo.CurrentCulture;
LocalizedString matchingString = null;
do
{
matchingString = array.OfType<LocalizedString>().FirstOrDefault(x => x.Culture.Equals(systemCulture));
if (systemCulture.Parent.Equals(systemCulture))
break; // We are at the Culture Root. so break or run for ever.
systemCulture = systemCulture.Parent;
} while (matchingString == null);
if (matchingString != null)
return matchingString.Value;
}
if (_flatten && array.Length == 1)
return array[0];
return array;
}
else if (metadata.Element.Options.IsStruct)
{
IDictionary<string, object> obj = new System.Dynamic.ExpandoObject();
List<TreeDirectory> properties = metadata.Childrean;// directories.XmpMeta.Properties.Where(x => x.Path != null && x.Path.StartsWith(metadata.Path))
foreach (var prop in properties)
{
obj.Add(prop.ElementName, GetObjectFromMetadata(prop, hirachciDirectory));
}
return obj;
}
else if (metadata.Element.Options.IsSimple)
{
//xml:lang, de
if (metadata.Element.Options.HasLanguage)
{
TreeDirectory langMetadata = metadata.Childrean.Single(x => x.ElementName == "lang" && x.ElementNameSpace == "http://www.w3.org/XML/1998/namespace");
System.Globalization.CultureInfo culture;
if (langMetadata.ElementValue == "x-default")
{
culture = System.Globalization.CultureInfo.InvariantCulture;
}
else
{
culture = System.Globalization.CultureInfo.GetCultureInfo(langMetadata.ElementValue);
}
return new LocalizedString() { Culture = culture, Value = metadata.ElementValue };
}
return metadata.ElementValue;
}
else
{
throw new NotSupportedException($"Option {metadata.Element.Options.GetOptionsString()} not supported.");
}
}