как вернуть формат json из ODATA?

Я знаю, что ODATA может вернуть json, но не уверен, должен ли я использовать атрибут или интерфейс, чтобы сделать это.

Я хочу, чтобы это делалось так же, как http://odata.netflix.com/Catalog/Titles ? $ format = JSON, но мой сервис odata не возвращает JSON , Когда я называю это как www.foo.com/service?$format=json, он просто возвращает XML. ________________________ ________________________ | Класс А | | Класс Б | | ----------------------- | | -----------------...

Ситуация:

Assembly 1
________________________             ________________________
| Class A               |           | Class B               |
|-----------------------|           |-----------------------|
| Method someMethod     |---------->| Method otherMethod    |
|                       |           |                       |
|_______________________|           |_______________________|

Сборка 1 - это приложение, которое могут использовать другие разработчики. Мы дадим им только .dll, чтобы мы могли публиковать обновления из приложения, если мы не изменим API. Разработчики не могут изменить каркас в сборке 1

Методы являются виртуальными, поэтому разработчики могут переопределять методы для реализации собственной логики, если это необходимо.

Проблема в том, что разработчик не может переопределить otherMethod из класса B, он может переопределить его, но класс A всегда будет вызывать метод из класса B, а не переопределенный метод.

Assembly 1
________________________             ________________________
| Class A               |           | Class B               |
|-----------------------|           |-----------------------|
| Method someMethod     |----XX---->| Method otherMethod    |
|                       |           |                       |
|_______________________|           |_______________________|
                \                                    |
                 \                                   |
                  \                                  |
Assembly 2         \                                 |
                    \                ________________|_______
                     \               | Class ExtendedB       |
                      \              |-----------------------|
                       \____________>| Method otherMethod    |
                                     |                       |
                                     |_______________________|

Сборка 2 имеет ссылку на сборку 1

Неполный класс не работает, поскольку он должен быть той же сборкой и будет не работает более 2

Существуют ли шаблоны проектирования для этой проблемы? Или есть другое решение с отражением или чем-то другим?

РЕДАКТИРОВАТЬ Добавлен пример кода:

/* ASSEMBLY 1 */

namespace Assembly1
{
    public interface IAService
    {
        void TestMethod3();
        void TestMethod4();
    }

    public interface IBService
    {
        void TestMethod1();
        void TestMethod2();
    }

    public class AService : IAService
    {
        // Base implementation of AService
        public  virtual void TestMethod3()
        {
            //do something
        }
        public virtual void TestMethod4()
        {
            //do something
        }
    }

    public class BService : IBService
    {
        // Base implementation of BService
        public virtual void TestMethod1()
        {
            //do something
        }
        public virtual void TestMethod2()
        {
            //need to call AService implementation from assembly 2
        }
    }
}   





/* ASSEMBLY 2 */
namespace Assembly2
{
    public class NewAService : AService
    {
        public override void TestMethod3()
        {
            //default implementation which could be overridden
            base.TestMethod3();
        }

        public override void TestMethod4()
        {
            //default implementation which could be overridden
            //An implementation of IBService Should be called

            base.TestMethod4();
        }
    }
}

5
задан Marco 16 August 2010 в 11:37
поделиться