Kentico 自定义宏方法返回自定义属性

问题描述 投票:0回答:0

我有以下自定义宏方法,它返回自定义对象“EmailContact”

public class EmailContactMacroMethods : MacroMethodContainer
{

    [MacroMethod(typeof(EmailContact), "Get Contact Info", 1)]
    [MacroMethodParam(0, "Email", typeof(string), "Email")]
    public static EmailContact GetContactInfoByEmail(EvaluationContext context, params object[] parameters)
    {
        EmailContact email_contact = new EmailContact();
       
        if (!string.IsNullOrEmpty(ValidationHelper.GetString(parameters[0], "")))
        {            
            ContactInfo contact = ContactInfoProvider.GetContactInfo(parameters[0].ToString());

            if (contact != null)
            {

                email_contact.FirstName = contact.ContactFirstName;
                email_contact.LastName = contact.ContactLastName;
            }
        }

        return email_contact;
    }
}

自定义课程

public class EmailContact : IDataContainer
{
    public object this[string columnName] { get => GetValue(columnName); set => throw new NotImplementedException(); }

    public string FirstName { get; set; }
    public string LastName { get; set; }

    public List<string> ColumnNames => new List<string>() { FirstName, LastName };

    public bool ContainsColumn(string columnName)
    {
        switch (columnName)
        {
            case "FirstName":
                return true;

            case "LastName":
                return true;

        }
        return false;
    }

    public object GetValue(string columnName)
    {
        switch (columnName)
        {
            case "FirstName":
                return FirstName;

            case "LastName":
                return LastName;

        }
        return null;
    }

    public bool SetValue(string columnName, object value)
    {
        throw new NotImplementedException();
    }

    public bool TryGetValue(string columnName, out object value)
    {
        if (columnName == "FirstName")
        {
            value = FirstName;
            return true;
        }
        else if (columnName == "LastName")
        {
            value = LastName;
            return true;
        }
        else
        {
            value = null;
            return false;
        }        

    }
}

我希望最终用户在点击“。”时能够看到类中的属性作为建议。在编辑器中。

目前,“名字”或“姓氏”不会作为建议出现在下拉列表中。

有没有办法解决这个问题

kentico kentico-13
© www.soinside.com 2019 - 2024. All rights reserved.