コード例 #1
0
ファイル: PengXmlWorldLoader.cs プロジェクト: fiftin/Pengball
        private ObjectArg[] GetObjectArgs(PengObjectInfo objInfo, PengWorld world, Func<string, Type> typeProvider)
        {
            ObjectArg[] ret = new ObjectArg[objInfo.Arguments.Length + 2];
            ret[0] = new ObjectArg(typeof(string), objInfo.Name);
            ret[1] = new ObjectArg(typeof(PengWorld), world);
            for (int i = 0; i < objInfo.Arguments.Length; i++ )
            {
                ret[i + 2] = ToObjectArg(objInfo.Arguments[i], typeProvider);
            }

            return ret;
        }
コード例 #2
0
 public void TestGetObjectArgs()
 {
     PengXmlWorldLoader_Accessor loader = new PengXmlWorldLoader_Accessor();
     PengObjectInfo objInfo = new PengObjectInfo();
     objInfo.Name = "obj1";
     objInfo.TypeName = "PengEngineTest.PengObject";
     objInfo.Arguments = new PengObjectArgumentInfo[]
     {
         new PengObjectArgumentInfo("System.Int32", "56"),
         new PengObjectArgumentInfo("System.Single", "57.61"),
         new PengObjectArgumentInfo("System.String", "Hello, World!"),
     };
     var args = loader.GetObjectArgs(objInfo, null, x=>Type.GetType(x));
     Assert.AreEqual(5, args.Length);
     Assert.AreEqual(typeof(string), args[0].Type);
     Assert.AreEqual("obj1", args[0].Value);
     Assert.AreEqual(typeof(PengWorld), args[1].Type);
     Assert.AreEqual(null, args[1].Value);
     Assert.AreEqual(typeof(int), args[2].Type);
     Assert.AreEqual(56, args[2].Value);
     Assert.AreEqual(typeof(float), args[3].Type);
     Assert.AreEqual(57.61f, args[3].Value);
     Assert.AreEqual(typeof(string), args[4].Type);
     Assert.AreEqual("Hello, World!", args[4].Value);
 }