Пример #1
0
        private string GetForwardedImplementation(ApiModel m, ApiMemberModel d)
        {
            switch (d.Kind)
            {
            case MemberKind.Method:
                return($"{d.ReturnType} {m.Interface}.{d.Identifier}{d.ArgsString}{Environment.NewLine}" +
                       $"\t => {m.Namespace}.{m.Api}.{d.Identifier}({d.ArgsArgs});");

            case MemberKind.Event:
                return($"event {d.ReturnType} {m.Interface}.{d.Identifier}{Environment.NewLine}{{{Environment.NewLine}" +
                       $"\t add => {m.Namespace}.{m.Api}.{d.Identifier} += value; {Environment.NewLine}" +
                       $"\t remove => {m.Namespace}.{m.Api}.{d.Identifier} -= value; {Environment.NewLine} }}");

            case MemberKind.Property:
                return($"{d.ReturnType} {m.Interface}.{d.Identifier}{Environment.NewLine}{{{Environment.NewLine}" +
                       $"\t get {{ return {m.Namespace}.{m.Api}.{d.Identifier}; }}{Environment.NewLine}" +
                       $"\t set {{ {m.Namespace}.{m.Api}.{d.Identifier} = value; }}{Environment.NewLine}}}");

            case MemberKind.PropertyGetOnly:
                return($"{d.ReturnType} {m.Interface}.{d.Identifier}{d.ArgsString}{Environment.NewLine}" +
                       $"\t => {m.Namespace}.{m.Api}.{d.Identifier};");

            default:
                throw new NotImplementedException($"Don't know how to generate forwarding implementation for {d.Kind}");
            }
        }
Пример #2
0
        public string GetInterfacePrototype(ApiMemberModel model)
        {
            switch (model.Kind)
            {
            case MemberKind.Method:
                return($"{model.ReturnType} {model.Identifier}{model.ArgsString};");

            case MemberKind.Event:
                return($"event {model.ReturnType} {model.Identifier};");

            case MemberKind.Property:
                return($"{model.ReturnType} {model.Identifier} {{ get; set; }}");

            case MemberKind.PropertyGetOnly:
                return($"{model.ReturnType} {model.Identifier} {{ get; }}");

            default:
                throw new NotImplementedException($"Don't know how to generate prototype for {model.Kind}");
            }
        }
Пример #3
0
 public static bool HasTypeConstraintClauses(this ApiMemberModel m)
 => !String.IsNullOrWhiteSpace(m.TypeConstraints);