示例#1
0
    private void Read()
    {
        injectMap = Resources.Load("InjectMap", typeof(InjectMap)) as InjectMap;

        if (loader != null)
        {
            _Read(loader.GetSettings());
        }
    }
示例#2
0
    public void _Read(string settings)
    {
        if (string.IsNullOrEmpty(settings))
        {
            return;
        }

        InjectMap outsideSettings = parser.Parse <InjectMap>(settings);

        foreach (BindMap bindMapCurr in injectMap.bind)
        {
            // If there hasn't setting, leave loop.
            if (outsideSettings.bind == null)
            {
                break;
            }

            BindMap bindMapNew = null;
            bindMapNew = Array.Find(
                outsideSettings.bind,
                (BindMap bm) => bm.bind.Equals(bindMapCurr.bind)
                );

            if (bindMapNew != null)
            {
                bindMapCurr.to = String.Copy(bindMapNew.to);
            }
        }

        foreach (PrimitiveMap primitiveMapCurr in injectMap.primitive)
        {
            // If there hasn't setting, leave loop.
            if (outsideSettings.primitive == null)
            {
                break;
            }

            PrimitiveMap primitiveMapNew = null;
            primitiveMapNew = Array.Find(
                outsideSettings.primitive,
                (PrimitiveMap pm) => pm.fieldPath.Equals(primitiveMapCurr.fieldPath)
                );

            if (primitiveMapNew != null)
            {
                primitiveMapCurr.fieldValue = String.Copy(primitiveMapNew.fieldValue);
            }
        }

        foreach (PrimitiveArrayMap primitiveArrayMapCurr in injectMap.primitiveArray)
        {
            // If there hasn't setting, leave loop.
            if (outsideSettings.primitiveArray == null)
            {
                break;
            }

            PrimitiveArrayMap PrimitiveArrayMapNew = null;
            PrimitiveArrayMapNew = Array.Find(
                outsideSettings.primitiveArray,
                (PrimitiveArrayMap pam) => pam.fieldPath.Equals(primitiveArrayMapCurr.fieldPath)
                );

            if (PrimitiveArrayMapNew != null)
            {
                Array.Copy(PrimitiveArrayMapNew.fieldValue, primitiveArrayMapCurr.fieldValue, PrimitiveArrayMapNew.fieldValue.Length);
            }
        }

        //Due to new settings changed, reinject level of logger
        Inject(logger);
    }