コード例 #1
0
        /// <summary>
        /// Convert a list of Obganism object into a Nap container.
        /// If the first object type is blank-named, its modifiers will be used to configure the container itself:
        ///
        /// <list type="bullet">
        /// <item> The optional <c>name</c> modifier will define the name of the container. </item>
        /// </list>
        /// </summary>
        public static PartialContainer ObjectsToContainer(IReadOnlyList <ObganismObject> obganismObjects)
        {
            var container = new PartialContainer();

            var i = 0;

            // The first object is unnamed: use it as the container's configuration.
            if (obganismObjects.Count != 0 && string.IsNullOrWhiteSpace(obganismObjects[0].Type.Name))
            {
                i = 1;

                foreach (var obganismModifier in obganismObjects[0].Modifiers)
                {
                    if (obganismModifier.Name == "name" && GetModifierParameterStringValue(obganismModifier, 0) is string containerName)
                    {
                        container.Name = containerName;
                        break;
                    }
                }
            }

            for (; i < obganismObjects.Count; ++i)
            {
                container.Resources.Add(ObjectToResource(obganismObjects[i]));
            }

            return(container);
        }
コード例 #2
0
        public static void AssertContainer(PartialContainer expected, PartialContainer actual)
        {
            Assert.AreEqual(expected.Name, actual.Name, "Container names didn't match.");
            Assert.AreEqual(expected.Resources.Count, actual.Resources.Count, "Resources are not the same count.");

            using var expectedEnumerator = expected.Resources.GetEnumerator();
            using var actualEnumerator   = actual.Resources.GetEnumerator();

            while (expectedEnumerator.MoveNext() && actualEnumerator.MoveNext())
            {
                AssertResource(expectedEnumerator.Current, actualEnumerator.Current);
            }
        }
コード例 #3
0
 public override bool IsClsComplianceRequired()
 {
     return(PartialContainer.IsClsComplianceRequired());
 }
コード例 #4
0
ファイル: roottypes.cs プロジェクト: mdae/MonoRT
 public override bool GetClsCompliantAttributeValue()
 {
     return(PartialContainer.GetClsCompliantAttributeValue());
 }