портирование этого php-кода на c # - PullRequest
0 голосов
/ 10 февраля 2010

У меня проблемы с переносом кода ниже на c #. моя главная проблема с $ fb_activity_array.

            $fb_activity_message = '{*actor*} played this game';
            $fb_activity_array = json_encode(array('message' => $fb_activity_message, 'action_link' => array('text' => 'Play Now','href' => 'http://yoururltoplaygamegere')));

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

Это случайно не приложение для Facebook? Похоже, вы пытаетесь создать пост в потоке. Если это так, я рекомендую использовать .NET Facebook API , который содержит функции для выполнения того, что вы хотите, а также некоторые утилиты форматирования JSON, если вам нужно сделать что-то вручную.

0 голосов
/ 10 февраля 2010

Это не идеальный пример, но это может поставить вас на правильный путь. Сначала создайте объект для хранения ваших данных.

public class activity
{
    public activity(string message, object action_link)
    {
        Message = message;
        Action_Link = action_link;
    }

    public string Message { get; set; }
    public object Action_Link { get; set; }

}

public class action_link
{
    public string Text { get; set; }
    public string Href { get; set; }

    public action_link(string text, string href)
    {
        Text = text;
        Href = href;
    }
}

Затем вы хотите создать такой класс, чтобы сериализовать его:

using System;
using System.Web;
using System.Web.Script.Serialzation;
     public class activityHandler : IHttpHandler
        {
        public void ProcessRequest (HttpContext context) {
                string message = "{*actor*} played this game";
                string text = "Play Now";
                string href = "http://yoururltoplaygamegere";

                action_link link = new action_link(text, href);
                activity act = new activity(message, link);

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                context.Response.Write(serializer.Serialize(act));
                context.Response.ContentType = "application/json";

        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

}

Это, скорее всего, даст вам структуру JSON, которую вы ищете при сериализации. Вы можете превратить объект action_link в коллекцию, если он соответствует стандарту, которого вы хотите достичь, чтобы у вас могло быть несколько объектов action_link для каждого объекта деятельности и т. Д. И т. Д. Вы можете узнать больше о сериализации, используемой в этом примере здесь:

Сериализация JSON в ASP.NET с C #

Надеюсь, это поможет.

...