• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Serialization.ObjectContext类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中SharpYaml.Serialization.ObjectContext的典型用法代码示例。如果您正苦于以下问题:C# ObjectContext类的具体用法?C# ObjectContext怎么用?C# ObjectContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ObjectContext类属于SharpYaml.Serialization命名空间,在下文中一共展示了ObjectContext类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: ReadCollectionItem

        /// <inheritdoc/>
        protected override object ReadCollectionItem(ref ObjectContext objectContext, Type itemType)
        {
            // Save the Yaml stream, in case loading fails we can keep this representation
            var parsingEvents = new List<ParsingEvent>();
            var reader = objectContext.Reader;
            var startDepth = reader.CurrentDepth;
            do
            {
                parsingEvents.Add(reader.Expect<ParsingEvent>());
            } while (reader.CurrentDepth > startDepth);

            // Save states
            var previousReader = objectContext.SerializerContext.Reader;
            var previousAllowErrors = objectContext.SerializerContext.AllowErrors;

            objectContext.SerializerContext.Reader = new EventReader(new MemoryParser(parsingEvents));
            objectContext.SerializerContext.AllowErrors = true;

            try
            {
                return objectContext.ObjectSerializerBackend.ReadCollectionItem(ref objectContext, itemType);
            }
            catch (YamlException)
            {
                // There was a failure, let's keep this object so that it can be serialized back later
                return new UnloadableScript(parsingEvents);
            }
            finally
            {
                // Restore states
                objectContext.SerializerContext.Reader = previousReader;
                objectContext.SerializerContext.AllowErrors = previousAllowErrors;
            }
        }
开发者ID:Powerino73,项目名称:paradox,代码行数:35,代码来源:ScriptCollectionSerializer.cs


示例2: ReadMemberName

        public override string ReadMemberName(ref ObjectContext objectContext, string memberName)
        {
            var newMemberName = memberName.Trim(PostFixSealed, PostFixNew);

            if (newMemberName.Length != memberName.Length)
            {
                var overrideType = OverrideType.Base;
                if (memberName.Contains(PostFixNewSealed) || memberName.EndsWith(PostFixNewSealedAlt))
                {
                    overrideType = OverrideType.New | OverrideType.Sealed;
                }
                else if (memberName.EndsWith(PostFixNew))
                {
                    overrideType = OverrideType.New;
                }
                else if (memberName.EndsWith(PostFixSealed))
                {
                    overrideType = OverrideType.Sealed;
                }

                if (overrideType != OverrideType.Base)
                {
                    var objectType = objectContext.Instance.GetType();
                    if (cachedDescriptor == null || cachedDescriptor.Type != objectType)
                    {
                        cachedDescriptor = typeDescriptorFactory.Find(objectType);
                    }
                    var memberDescriptor = cachedDescriptor[newMemberName];
                    objectContext.Instance.SetOverride(memberDescriptor, overrideType);
                }
            }

            return base.ReadMemberName(ref objectContext, newMemberName);
        }
开发者ID:h78hy78yhoi8j,项目名称:xenko,代码行数:34,代码来源:OverrideKeyMappingTransform.cs


示例3: WriteMemberName

        public override void WriteMemberName(ref ObjectContext objectContext, SharpYaml.Serialization.IMemberDescriptor member, string memberName)
        {
            // Replace the key with SiliconStudio.Core.Reflection IMemberDescriptor
            // Cache previous 
            if (member != null)
            {
                var customDescriptor = (IMemberDescriptor)member.Tag;
                if (customDescriptor == null)
                {
                    customDescriptor = typeDescriptorFactory.Find(objectContext.Instance.GetType())[memberName];
                    member.Tag = customDescriptor;
                }

                if (customDescriptor != null)
                {
                    var overrideType = objectContext.Instance.GetOverride(customDescriptor);
                    if (!keepOnlySealedOverrides && (overrideType & OverrideType.New) != 0)
                    {
                        memberName += PostFixNew;
                    }
                    if ((overrideType & OverrideType.Sealed) != 0)
                    {
                        memberName += PostFixSealed;
                    }
                }
            }

            base.WriteMemberName(ref objectContext, member, memberName);
        }
开发者ID:Powerino73,项目名称:paradox,代码行数:29,代码来源:OverrideKeyMappingTransform.cs


示例4: WriteScalar

 protected override void WriteScalar(ref ObjectContext objectContext, ScalarEventInfo scalar)
 {
     // TODO: if ParameterKey is written to an object, It will not serialized a tag
     scalar.Tag = null;
     scalar.IsPlainImplicit = true;
     base.WriteScalar(ref objectContext, scalar);
 }
开发者ID:releed,项目名称:paradox,代码行数:7,代码来源:PropertyKeyYamlSerializer.cs


示例5: ConvertTo

        public override string ConvertTo(ref ObjectContext objectContext)
        {
            var attachedReference = AttachedReferenceManager.GetAttachedReference(objectContext.Instance);
            if (attachedReference == null)
                throw new YamlException(string.Format("Unable to extract asset reference from object [{0}]", objectContext.Instance));

            return string.Format("{0}:{1}", attachedReference.Id, attachedReference.Url);
        }
开发者ID:h78hy78yhoi8j,项目名称:xenko,代码行数:8,代码来源:ContentReferenceSerializer.cs


示例6: WriteDictionaryItems

 protected override void WriteDictionaryItems(ref ObjectContext objectContext)
 {
     // Don't sort dictionary keys
     var savedSettings = objectContext.Settings.SortKeyForMapping;
     objectContext.Settings.SortKeyForMapping = false;
     base.WriteDictionaryItems(ref objectContext);
     objectContext.Settings.SortKeyForMapping = savedSettings;
 }
开发者ID:cg123,项目名称:xenko,代码行数:8,代码来源:ParameterKeyDictionarySerializer.cs


示例7: WriteDictionaryItem

        protected override void WriteDictionaryItem(ref ObjectContext objectContext, KeyValuePair<object, object> keyValue, KeyValuePair<Type, Type> types)
        {
            var propertyKey = (PropertyKey)keyValue.Key;
            objectContext.SerializerContext.WriteYaml(propertyKey, types.Key);

            // Deduce expected value type from PropertyKey
            objectContext.SerializerContext.WriteYaml(keyValue.Value, propertyKey.PropertyType);
        }
开发者ID:cg123,项目名称:xenko,代码行数:8,代码来源:ParameterKeyDictionarySerializer.cs


示例8: ConvertTo

        public override string ConvertTo(ref ObjectContext objectContext)
        {
            var attachedReference = AttachedReferenceManager.GetAttachedReference(objectContext.Instance);
            if (attachedReference == null)
                throw new YamlException($"Unable to extract asset reference from object [{objectContext.Instance}]");

            var referenceId = IdentifiableHelper.GetId(objectContext.Instance);
            return $"{referenceId}/{attachedReference.Id}:{attachedReference.Url}";
        }
开发者ID:cg123,项目名称:xenko,代码行数:9,代码来源:ContentReferenceSerializer.cs


示例9: ConvertFrom

 public override object ConvertFrom(ref ObjectContext context, Scalar fromScalar)
 {
     PackageVersion packageVersion;
     if (!PackageVersion.TryParse(fromScalar.Value, out packageVersion))
     {
         throw new YamlException(fromScalar.Start, fromScalar.End, "Invalid version format. Unable to decode [{0}]".ToFormat(fromScalar.Value));
     }
     return packageVersion;
 }
开发者ID:cg123,项目名称:xenko,代码行数:9,代码来源:PackageVersionSerializer.cs


示例10: ConvertFrom

 public override object ConvertFrom(ref ObjectContext context, Scalar fromScalar)
 {
     PackageReference packageReference;
     if (!PackageReference.TryParse(fromScalar.Value, out packageReference))
     {
         throw new YamlException(fromScalar.Start, fromScalar.End, "Unable to decode package reference [{0}]. Expecting format GUID:LOCATION".ToFormat(fromScalar.Value));
     }
     return packageReference;
 }
开发者ID:Powerino73,项目名称:paradox,代码行数:9,代码来源:PackageReferenceSerializer.cs


示例11: ConvertFrom

 public override object ConvertFrom(ref ObjectContext context, Scalar fromScalar)
 {
     AssetReference assetReference;
     if (!AssetReference.TryParse(context.Descriptor.Type, fromScalar.Value, out assetReference))
     {
         throw new YamlException(fromScalar.Start, fromScalar.End, "Unable to decode asset reference [{0}]. Expecting format GUID:LOCATION".ToFormat(fromScalar.Value));
     }
     return assetReference;
 }
开发者ID:h78hy78yhoi8j,项目名称:xenko,代码行数:9,代码来源:AssetReferenceSerializer.cs


示例12: ConvertFrom

 public override object ConvertFrom(ref ObjectContext objectContext, Scalar fromScalar)
 {
     var parameterKey = ParameterKeys.FindByName(fromScalar.Value);
     if (parameterKey == null)
     {
         throw new YamlException(fromScalar.Start, fromScalar.End, "Unable to find registered ParameterKey [{0}]".ToFormat(fromScalar.Value));
     }
     return parameterKey;
 }
开发者ID:ItayGal2,项目名称:paradox,代码行数:9,代码来源:ParameterKeySerializer.cs


示例13: ReadDictionaryItem

        protected override KeyValuePair<object, object> ReadDictionaryItem(ref ObjectContext objectContext, KeyValuePair<Type, Type> keyValueType)
        {
            // Read PropertyKey
            var keyResult = (PropertyKey)objectContext.SerializerContext.ReadYaml(null, keyValueType.Key);

            // Deduce expected value type from PropertyKey
            var valueResult = objectContext.SerializerContext.ReadYaml(null, keyResult.PropertyType);

            return new KeyValuePair<object, object>(keyResult, valueResult);
        }
开发者ID:cg123,项目名称:xenko,代码行数:10,代码来源:ParameterKeyDictionarySerializer.cs


示例14: ConvertFrom

 public override object ConvertFrom(ref ObjectContext objectContext, Scalar fromScalar)
 {
     Guid id;
     if (!Guid.TryParse(fromScalar.Value, out id))
     {
         throw new YamlException(fromScalar.Start, fromScalar.End, $"Unable to parse id [{fromScalar.Value}]");
     }
     var materialNull = new MaterialNull();
     IdentifiableHelper.SetId(materialNull, id);
     return materialNull;
 }
开发者ID:cg123,项目名称:xenko,代码行数:11,代码来源:MaterialNullSerializer.cs


示例15: ConvertFrom

        public override object ConvertFrom(ref ObjectContext context, Scalar fromScalar)
        {
            Guid guid;
            UFile location;
            if (!AssetReference.TryParse(fromScalar.Value, out guid, out location))
            {
                throw new YamlException(fromScalar.Start, fromScalar.End, "Unable to decode asset reference [{0}]. Expecting format GUID:LOCATION".ToFormat(fromScalar.Value));
            }

            return AttachedReferenceManager.CreateSerializableVersion(context.Descriptor.Type, guid, location);
        }
开发者ID:h78hy78yhoi8j,项目名称:xenko,代码行数:11,代码来源:ContentReferenceSerializer.cs


示例16: ConvertFrom

 public override object ConvertFrom(ref ObjectContext objectContext, Scalar fromScalar)
 {
     var parameterKey = ParameterKeys.FindByName(fromScalar.Value);
     if (parameterKey == null)
     {
         parameterKey = ParameterKeys.New<object>(null, fromScalar.Value);
         // Dont' throw an exception if keys was not found
         //throw new YamlException(fromScalar.Start, fromScalar.End, "Unable to find registered ParameterKey [{0}]".ToFormat(fromScalar.Value));
     }
     return parameterKey;
 }
开发者ID:Powerino73,项目名称:paradox,代码行数:11,代码来源:ParameterKeySerializer.cs


示例17: TransformObjectAfterRead

        protected override void TransformObjectAfterRead(ref ObjectContext objectContext)
        {
            if (!objectContext.SerializerContext.IsSerializing)
            {
                var settingsDictionary = (SettingsDictionary)objectContext.Instance;
                var settingsProfile = settingsDictionary.Profile;

                settingsProfile.Container.DecodeSettings(settingsDictionary, settingsProfile);

                objectContext.Instance = settingsProfile;
            }
        }
开发者ID:h78hy78yhoi8j,项目名称:xenko,代码行数:12,代码来源:SettingsProfileSerializer.cs


示例18: TransformObjectAfterRead

        protected override void TransformObjectAfterRead(ref ObjectContext objectContext)
        {
            if (!objectContext.SerializerContext.IsSerializing)
            {
                var settingsDictionary = (SettingsDictionary)objectContext.Instance;
                var settingsCollection = (SettingsCollection)settingsDictionary.Tags;

                settingsCollection.Profile.Group.DecodeSettings(settingsDictionary, settingsCollection.Profile);

                objectContext.Instance = settingsCollection;
            }
        }
开发者ID:dejavvu,项目名称:paradox,代码行数:12,代码来源:SettingsDictionarySerializer.cs


示例19: ConvertTo

        public override string ConvertTo(ref ObjectContext objectContext)
        {
            var propertyKey = (PropertyKey)objectContext.Instance;

            var className = objectContext.SerializerContext.TagFromType(propertyKey.OwnerType);
            var sb = new StringBuilder(className.Length + 1 + propertyKey.Name.Length);

            sb.Append(className, 1, className.Length - 1); // Ignore initial '!'
            sb.Append('.');
            sb.Append(propertyKey.Name);

            return sb.ToString();
        }
开发者ID:releed,项目名称:paradox,代码行数:13,代码来源:PropertyKeySerializerTest.cs


示例20: WriteDictionaryItem

        protected override void WriteDictionaryItem(ref ObjectContext objectContext, KeyValuePair<object, object> keyValue, KeyValuePair<Type, Type> types)
        {
            var propertyKey = (UFile)keyValue.Key;
            objectContext.SerializerContext.WriteYaml(propertyKey, types.Key);

            // Deduce expected value type from PropertyKey
            var parsingEvents = (List<ParsingEvent>)keyValue.Value;
            var writer = objectContext.Writer;
            foreach (var parsingEvent in parsingEvents)
            {
                writer.Emit(parsingEvent);
            }
        }
开发者ID:dejavvu,项目名称:paradox,代码行数:13,代码来源:SettingsDictionarySerializer.cs



注:本文中的SharpYaml.Serialization.ObjectContext类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Sharpen.ByteArrayOutputStream类代码示例发布时间:2022-05-26
下一篇:
C# Core.ToxHandle类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap