예제 #1
0
        void BasicChecks(MethodBase m, Type t, ref int n)
        {
            int native = 0;
            int pos    = CurrentSelector.IndexOf(':');

            while (pos != -1)
            {
                native++;
                pos = CurrentSelector.IndexOf(':', pos + 1);
            }
            var mp      = m.GetParameters();
            int managed = mp.Length;

            if (t.IsSealed && t.IsAbstract)
            {
                // static types, e.g. [Category], adds a first 'This' argument for extension methods
                // but we also expose static properties this way, e.g. NSUrlUtilities_NSCharacterSet
                if ((managed >= 1) && (mp [0].Name == "This"))
                {
                    managed--;
                }
            }
            if (LogProgress)
            {
                Console.WriteLine("{0} {1} '{2}' selector {3} : {4} == {5}", ++n, t.Name, m, CurrentSelector, native, managed);
            }
            if (native != managed)
            {
                AddErrorLine("Parameter count mismatch for {0} in {1}:{2} : Native {3} vs Managed {4}",
                             CurrentSelector, t, m.Name, native, managed);
            }
        }
예제 #2
0
        public void BuildStyle()
        {
            var rule = new CSSRule();

            rule.Type             = CSSRuleType.StyleRule;
            rule.ParentStyleSheet = StyleSheet;
            rule.SelectorText     = CurrentSelector.Replace("\r", "");
            rule.Style            = CSSStyleDeclaration.Parse(Fields);

            StyleSheet.CssRules.Add(rule);

            CurrentSelector = string.Empty;
            Fields.Clear();
        }