示例#1
0
        void AddPropertyProcedure(PropertyInfo property, MethodInfo method)
        {
            var handler = new ProcedureHandler(method, TypeUtils.GetNullable(property));

            AddProcedure(new ProcedureSignature(
                             Name, method.Name, NextProcedureId, property.GetDocumentation(), handler,
                             TypeUtils.GetPropertyGameScene(property, gameScene)));
        }
示例#2
0
        public void Properties()
        {
            var handler    = new ProcedureHandler(typeof(ProcedureHandlerTest).GetMethod("TestProcedure"));
            var parameters = handler.Parameters.ToList();

            Assert.AreEqual(2, parameters.Count);
            Assert.AreEqual("x", parameters [0].Name);
            Assert.AreEqual("y", parameters [1].Name);
            Assert.AreEqual(typeof(int), parameters [0].Type);
            Assert.AreEqual(typeof(float), parameters [1].Type);
            Assert.IsFalse(parameters [0].HasDefaultValue);
            Assert.IsFalse(parameters [1].HasDefaultValue);
            Assert.AreEqual(typeof(float), handler.ReturnType);
        }
示例#3
0
        public void PropertiesDefaultArgument()
        {
            var handler    = new ProcedureHandler(typeof(ProcedureHandlerTest).GetMethod("TestProcedureWithDefaultArg"), false);
            var parameters = handler.Parameters.ToList();

            Assert.AreEqual(2, parameters.Count);
            Assert.AreEqual("x", parameters [0].Name);
            Assert.AreEqual("y", parameters [1].Name);
            Assert.AreEqual(typeof(int), parameters [0].Type);
            Assert.AreEqual(typeof(string), parameters [1].Type);
            Assert.IsFalse(parameters [0].HasDefaultValue);
            Assert.IsTrue(parameters [1].HasDefaultValue);
            Assert.AreEqual("foo", parameters [1].DefaultValue);
            Assert.AreEqual(typeof(string), handler.ReturnType);
        }
示例#4
0
 /// <summary>
 /// Add a property to the service for the given property annotated with the KRPCProperty attribute.
 /// </summary>
 public void AddProperty(PropertyInfo property)
 {
     TypeUtils.ValidateKRPCProperty(property);
     if (property.GetGetMethod() != null)
     {
         var method    = property.GetGetMethod();
         var handler   = new ProcedureHandler(method);
         var attribute = "Property.Get(" + property.Name + ")";
         AddProcedure(new ProcedureSignature(Name, method.Name, property.GetDocumentation(), handler, GameScene, attribute));
     }
     if (property.GetSetMethod() != null)
     {
         var method    = property.GetSetMethod();
         var handler   = new ProcedureHandler(method);
         var attribute = "Property.Set(" + property.Name + ")";
         AddProcedure(new ProcedureSignature(Name, method.Name, property.GetDocumentation(), handler, GameScene, attribute));
     }
 }
示例#5
0
        public void DefaultArguments()
        {
            var handler = new ProcedureHandler(typeof(ProcedureHandlerTest).GetMethod("TestProcedureWithDefaultArg"));

            Assert.AreEqual("42foo", handler.Invoke(new object[] { 42, Type.Missing }));
        }
示例#6
0
        public void SimpleUsage()
        {
            var handler = new ProcedureHandler(typeof(ProcedureHandlerTest).GetMethod("TestProcedure"));

            Assert.AreEqual(3.14159f, handler.Invoke(new object[] { 3, 0.14159f }));
        }
示例#7
0
 /// <summary>
 /// Add a property to the service for the given property annotated with the KRPCProperty attribute.
 /// </summary>
 public void AddProperty(PropertyInfo property)
 {
     TypeUtils.ValidateKRPCProperty (property);
     if (property.GetGetMethod () != null) {
         var method = property.GetGetMethod ();
         var handler = new ProcedureHandler (method);
         var attribute = "Property.Get(" + property.Name + ")";
         AddProcedure (new ProcedureSignature (Name, method.Name, property.GetDocumentation (), handler, GameScene, attribute));
     }
     if (property.GetSetMethod () != null) {
         var method = property.GetSetMethod ();
         var handler = new ProcedureHandler (method);
         var attribute = "Property.Set(" + property.Name + ")";
         AddProcedure (new ProcedureSignature (Name, method.Name, property.GetDocumentation (), handler, GameScene, attribute));
     }
 }
示例#8
0
        void AddPropertyMethod(MemberInfo property, MethodInfo method, String attribute)
        {
            var handler = new ProcedureHandler(method);

            AddProcedure(new ProcedureSignature(Name, method.Name, property.GetDocumentation(), handler, GameScene, attribute));
        }
示例#9
0
 void AddPropertyMethod (MemberInfo property, MethodInfo method, String attribute)
 {
     var handler = new ProcedureHandler (method);
     AddProcedure (new ProcedureSignature (Name, method.Name, property.GetDocumentation (), handler, GameScene, attribute));
 }