本文整理汇总了C#中FieldDescriptor.GetObject方法的典型用法代码示例。如果您正苦于以下问题:C# FieldDescriptor.GetObject方法的具体用法?C# FieldDescriptor.GetObject怎么用?C# FieldDescriptor.GetObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FieldDescriptor
的用法示例。
在下文中一共展示了FieldDescriptor.GetObject方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsSerializable
private static bool IsSerializable(FieldDescriptor fd, object obj)
{
switch (fd.FdType)
{
case FieldTypes.Scalar:
if (fd.IsDefaultValueFromContext(obj))
return false;
break;
case FieldTypes.CompositeElement:
case FieldTypes.CollectionElement:
case FieldTypes.MapElement:
Object tempObj = fd.GetObject(obj);
if (tempObj == null)
return false;
break;
case FieldTypes.CollectionScalar:
case FieldTypes.MapScalar:
Object scalarCollectionObject = fd.GetObject(obj);
if (scalarCollectionObject == null)
return false;
ICollection scalarCollection = XmlTools.GetCollection(scalarCollectionObject);
if (scalarCollection == null || scalarCollection.Count <= 0)
return false;
break;
}
return true;
}
示例2: SerializeComposite
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <param name="textWriter"></param>
/// <param name="translationContext"></param>
/// <param name="fd"></param>
private void SerializeComposite(object obj, TextWriter textWriter, TranslationContext translationContext,
FieldDescriptor fd)
{
Object compositeObject = fd.GetObject(obj);
FieldDescriptor compositeAsScalarFd = GetClassDescriptor(compositeObject).ScalarValueFieldDescripotor;
if (compositeAsScalarFd != null)
{
WriteBibtexAttribute(compositeObject, fd, textWriter, translationContext);
}
}
示例3: SerializeScalarCollection
private void SerializeScalarCollection(object obj, TextWriter textWriter, TranslationContext translationContext, FieldDescriptor fd)
{
Object scalarCollectionObject = fd.GetObject(obj);
ICollection scalarCollection = XmlTools.GetCollection(scalarCollectionObject);
int numberOfItems = 0;
//WriteWrap(fd, textWriter, false);
WriteCollectionStart(fd.TagName, textWriter);
foreach (Object collectionObject in scalarCollection)
{
WriteCollectionScalar(collectionObject, fd, textWriter, translationContext);
if (++numberOfItems < scalarCollection.Count)
textWriter.Write(',');
}
WriteCollectionEnd(textWriter);
//WriteWrap(fd, textWriter, true);
}
示例4: SerializePolymorphicCollection
private void SerializePolymorphicCollection(object obj, TextWriter textWriter, TranslationContext translationContext, FieldDescriptor fd)
{
Object collectionObject = fd.GetObject(obj);
ICollection compositeCollection = XmlTools.GetCollection(collectionObject);
int numberOfItems = 0;
WriteCollectionStart(fd.TagName, textWriter);
foreach (Object collectionComposite in compositeCollection)
{
FieldDescriptor collectionObjectFieldDescriptor = fd.IsPolymorphic
? GetClassDescriptor(
collectionComposite).PseudoFieldDescriptor
: fd;
WriteStart(textWriter);
Serialize(collectionComposite, collectionObjectFieldDescriptor, textWriter,
translationContext, true);
WriteClose(textWriter);
if (++numberOfItems < compositeCollection.Count)
textWriter.Write(',');
}
WriteCollectionEnd(textWriter);
}
示例5: SerializeCompositeCollection
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <param name="textWriter"></param>
/// <param name="translationContext"></param>
/// <param name="fd"></param>
private void SerializeCompositeCollection(object obj, TextWriter textWriter,
TranslationContext translationContext, FieldDescriptor fd)
{
Object scalarCollectionObject = fd.GetObject(obj);
ICollection scalarCollection = XmlTools.GetCollection(scalarCollectionObject);
String delim = "author".Equals(fd.BibtexTagName) ? " and " : translationContext.Delimiter;
if (scalarCollection.Count > 0)
{
int numberOfItems = 0;
WriteCollectionStart(fd, textWriter);
foreach (Object collectionObject in scalarCollection)
{
FieldDescriptor compositeAsScalarFd = GetClassDescriptor(collectionObject).ScalarValueFieldDescripotor;
if (compositeAsScalarFd != null)
{
WriteScalarBibtexAttribute(collectionObject, compositeAsScalarFd, textWriter, translationContext);
}
if (++numberOfItems < scalarCollection.Count)
textWriter.Write(delim);
}
WriteCollectionEnd(textWriter);
}
}