parametreleri. Benim düşüncem tüm istekler için arayüzler oluşturmak ve sadece bu arayüzleri Web API kodunda kullanmaktı.Bağımlılık enjeksiyon ben mobil bir uygulamanın bir JSON arabirimi için C# bir ASP.NET Web API proje üzerinde çalışıyorum
public interface IApiObject {}
public interface IApiResponse<T> : IApiObject where T : IApiObject {}
public interface IApiRegistrationRequest : IApiObject {}
Benim denetleyicisi şuna benzer::
public class MyApiController : ApiController
{
public IApiResponse<IApiObject> Register(IApiRegistrationRequest request) {
// do some stuff
}
}
My Web API Proje ayrıca bu ara yüzlerin uygulamaları içermektedir
böyle bir şey ile sona erdi.Web API projelerinin MVC projeleri gibi model ciltleme kullandığını farz ettim, böylece tüm IApiObject'ler için bir bağlayıcı ve uygulamaları için arabirimleri çözmek için bir Unity konteyner kullanarak özel bir model bağlayıcı sağlamak üzere bir inheritance aware ModelBinderProvider oluşturdum.
Ancak, bazı daha soruşturma sonrasında, ben How Web API does parameter binding geldi ve Web API yerine karmaşık türleri için örnek bağlayıcıların biçemleyicileri kullanır öğrendim. Bağlantılı blog yayını, işlem parametrelerimde ModelBinderAttribute kullanılmasını önerir, ancak bu özellik yalnızca bir parametre olarak bir türü kabul eder. Benim özel model bağlayıcı Ancak boş bir yapıcı (bir birlik kabı ihtiyacı) içermez, bu yüzden bunun bir örneğini geçmesi gerekir. Aklımabaşka yolu formatlayıcılar için bağımlılık enjeksiyon kullanıyor. Ne yazık ki, onları daha önce hiç kullanmadığım için yabancı değilim.
gitmek için doğru yol hangisi? Ve ben nasıl yaparım?
Teşekkürler, bu ilginç görünüyor, ancak şu anda teknolojiyi kolayca değiştiremiyorum. – Chris