本文整理汇总了C#中ElementInfo.hasPreparedASN1ElementInfo方法的典型用法代码示例。如果您正苦于以下问题:C# ElementInfo.hasPreparedASN1ElementInfo方法的具体用法?C# ElementInfo.hasPreparedASN1ElementInfo怎么用?C# ElementInfo.hasPreparedASN1ElementInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ElementInfo
的用法示例。
在下文中一共展示了ElementInfo.hasPreparedASN1ElementInfo方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: encode
public override int encode(IASN1TypesEncoder encoder, object obj, Stream stream, ElementInfo elementInfo)
{
Object result = null;
ASN1ElementMetadata saveInfo = elementInfo.PreparedASN1ElementInfo;
elementInfo.PreparedInfo = (valueFieldMeta);
if (!CoderUtils.isNullField(valueField, elementInfo))
{
result = encoder.invokeGetterMethodForField(valueField, obj, elementInfo);
}
if (saveInfo != null)
{
if (!saveInfo.HasTag
&& elementInfo.hasPreparedASN1ElementInfo()
&& elementInfo.PreparedASN1ElementInfo.HasTag)
{
ASN1ElementMetadata elData = new ASN1ElementMetadata(
saveInfo.Name,
saveInfo.IsOptional,
elementInfo.PreparedASN1ElementInfo.HasTag,
elementInfo.PreparedASN1ElementInfo.IsImplicitTag,
elementInfo.PreparedASN1ElementInfo.TagClass,
elementInfo.PreparedASN1ElementInfo.Tag,
saveInfo.HasDefaultValue
);
elementInfo.PreparedASN1ElementInfo = elData;
}
else
elementInfo.PreparedASN1ElementInfo = (saveInfo);
}
return valueFieldMeta.TypeMetadata.encode(encoder, result, stream, elementInfo);
}
示例2: decodeChoice
public override DecodedObject<object> decodeChoice(DecodedObject<object> decodedTag, Type objectClass, ElementInfo elementInfo, System.IO.Stream stream)
{
if ( (elementInfo.hasPreparedInfo() && elementInfo.hasPreparedASN1ElementInfo() && elementInfo.PreparedASN1ElementInfo.HasTag)
|| (elementInfo.ASN1ElementInfo != null && elementInfo.ASN1ElementInfo.HasTag))
{
if (!checkTagForObject(decodedTag, TagClasses.ContextSpecific, ElementType.Constructed, UniversalTags.LastUniversal, elementInfo))
return null;
DecodedObject<int> len = decodeLength(stream);
DecodedObject<object> childDecodedTag = decodeTag(stream);
DecodedObject<object> result = base.decodeChoice(childDecodedTag, objectClass, elementInfo, stream);
result.Size += len.Size + childDecodedTag.Size;
return result;
}
else
return base.decodeChoice(decodedTag, objectClass, elementInfo, stream);
}
示例3: decode
public override DecodedObject<object> decode(IASN1TypesDecoder decoder, DecodedObject<object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream)
{
IASN1PreparedElementData saveInfo = elementInfo.PreparedInfo;
IASN1PreparedElement instance = (IASN1PreparedElement)elementInfo.PreparedInstance;
ASN1ElementMetadata saveElemInfo = elementInfo.PreparedASN1ElementInfo;
elementInfo.PreparedInfo = (valueFieldMeta);
if (saveElemInfo != null)
{
if (!saveElemInfo.HasTag
&& elementInfo.hasPreparedASN1ElementInfo()
&& elementInfo.PreparedASN1ElementInfo.HasTag)
{
ASN1ElementMetadata elData = new ASN1ElementMetadata(
saveElemInfo.Name,
saveElemInfo.IsOptional,
elementInfo.PreparedASN1ElementInfo.HasTag,
elementInfo.PreparedASN1ElementInfo.IsImplicitTag,
elementInfo.PreparedASN1ElementInfo.TagClass,
elementInfo.PreparedASN1ElementInfo.Tag,
saveElemInfo.HasDefaultValue
);
elementInfo.PreparedASN1ElementInfo = elData;
}
else
elementInfo.PreparedASN1ElementInfo = (saveElemInfo);
}
DecodedObject<object> decodedResult =
valueFieldMeta.TypeMetadata.decode(decoder, decodedTag, valueField.PropertyType, elementInfo, stream);
if (decodedResult != null)
{
if (!CoderUtils.isNullField(valueField, elementInfo))
{
decoder.invokeSetterMethodForField(valueField, instance, decodedResult.Value, elementInfo);
}
}
elementInfo.PreparedInfo = (saveInfo);
elementInfo.PreparedInstance = (instance);
elementInfo.PreparedASN1ElementInfo = (saveElemInfo);
if (decodedResult != null)
return new DecodedObject<object>(instance, decodedResult.Size);
else
return decodedResult;
}