C # XMLRPC Пользовательские поля - PullRequest
0 голосов
/ 15 ноября 2011

Я пытаюсь написать программу на C #, и я застрял. Программа предполагает создать пост на WordPress через xmlrpc. Я могу создать сообщение успешно, но у меня проблемы с созданием настраиваемых полей для сообщения. Поэтому, когда я открываю созданный пост, настраиваемые поля никогда не появляются. Я надеюсь, что некоторые из вас, гуру, могут помочь мне, потому что я застрял на 3 дня и не могу понять, что делать, чувствую себя абсолютно беспомощным: (

Вот какой-то код:

public struct customField
        {
            public string key;
            public string value; 
        }
        public struct newPost
        {
            public string[] categories;
            public string title;
            public string description;
            public string mt_excerpt;
            public customField[] cf;
        }
public interface IcreatePost
       {
           [CookComputing.XmlRpc.XmlRpcMethod("metaWeblog.newPost")]
           string NewPost(int blogId, string strUserName,
               string strPassword, newPost content, int publish);
       }

Вот как я устанавливаю значения для объекта

    customField newCustomField2 = default(customField);

    newCustomField2.key = "some data";

    newCustomField2.value = "some data";


    newPost newBlogPost = default(newPost);
    newBlogPost.title = "Some Title";
    newBlogPost.description = "Some Content";
    newBlogPost.cf = new customField[] { newCustomField2 };
createPost(newBlogPost);

Вызванная функция:

public void createPost(newPost np)
        {

            string postid;
            icp = (IcreatePost)XmlRpcProxyGen.Create(typeof(IcreatePost));
            clientProtocol = (XmlRpcClientProtocol)icp;
            clientProtocol.Url = "http://127.0.0.1/xmlrpc.php";
            try
            {
                postid = icp.NewPost(1, "admin", "1234", np, 1); 

            }
            catch (Exception ex)
            {
                MessageBox.Show("createPost ERROR ->"+ ex.Message);
            }
        }

1 Ответ

2 голосов
/ 18 ноября 2011

Мое единственное предположение здесь состоит в том, что в ваших параметрах есть несоответствие именования.В документации, которую я видел, говорится, что поле внутри структуры newPost должно быть custom_fields, а не cf:

public struct newPost
{
    public string[] categories;
    public string title;
    public string description;
    public string mt_excerpt;
    public customField[] custom_fields;
}
...