小编Shu*_*osh的帖子

如何将条件必需属性放入类属性以使用WEB API?

我只想放置与WEB API一起使用的条件必需属性

public sealed class EmployeeModel
{
      [Required]
      public int CategoryId{ get; set; }
      public string Email{ get; set; } // If CategoryId == 1 then it is required
}
Run Code Online (Sandbox Code Playgroud)

我通过(ActionFilterAttribute)使用模型状态验证

c# custom-attributes asp.net-mvc-4 asp.net-web-api

20
推荐指数
2
解决办法
2万
查看次数

使用基于Ninject约定的绑定的正确方法是什么?

我主要使用Ninject作为手动绑定,如波纹管.哪个工作正常

kernel.Bind<TestContext>().ToSelf().InRequestScope();
kernel.Bind<ITestRepository>().To<TestRepository>();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用基于约束的绑定绑定时,有点困惑,什么时候使用?

我浏览了这个Ninject文档但是我找不到很多例子.

根据我的所有Repository类实现IRepository < Model >.因此,如果我想以传统方式进行绑定,那么下面的代码可以正常工作.

      kernel.Bind(x => x
            .FromAssembliesMatching("*")
            .SelectAllClasses()
            .InheritedFrom(typeof(IRepository<>))
            .BindDefaultInterface());
Run Code Online (Sandbox Code Playgroud)

但我有点困惑

1.当我改变.FromAssembliesMatching("*").FromThisAssembly()它不能正常工作,并抛出Error activating ITestRepository为什么呢?

2.当改变.SelectAllClasses()为To .SelectAllIncludingAbstractClasses()时,.FromAssembliesMatching("*")它的组合工作正常,为什么

让我解释一下我的代码结构.

IRepository(在DLL 1中)

public interface IRepository<E>
{
    E Get();
}
Run Code Online (Sandbox Code Playgroud)

RepositoryBase(在DLL 1中)

 public abstract class RepositoryBase<E> : IRepository<E>
    where E : class
{

    public E Get()
    {
        return System.Activator.CreateInstance<E>(); // this is just for testing
    }
}
Run Code Online (Sandbox Code Playgroud)

TestRepository …

c# dependency-injection ninject ninject-extensions ninject.web.mvc

7
推荐指数
1
解决办法
6558
查看次数

如何使用HttpClient从Web Api调用PUT方法?

我想调用Api函数(1st).来自使用HttpClient的第二个Api功能.但我总是得到404错误.

第一个Api函数(EndPoint: http:// localhost:xxxxx/api/Test /)

public HttpResponseMessage Put(int id, int accountId, byte[] content)
[...]
Run Code Online (Sandbox Code Playgroud)

第二个Api功能

public HttpResponseMessage Put(int id, int aid, byte[] filecontent)
{
    WebRequestHandler handler = new WebRequestHandler()
    {
        AllowAutoRedirect = false,
        UseProxy = false
    };

    using (HttpClient client = new HttpClient(handler))
    {
        client.BaseAddress = new Uri("http://localhost:xxxxx/");

        // Add an Accept header for JSON format.
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var param = new object[6];
        param[0] = id;
        param[1] = "/";
        param[2] = "?aid="; 
        param[3] = …
Run Code Online (Sandbox Code Playgroud)

rest c#-4.0 asp.net-mvc-4 asp.net-web-api dotnet-httpclient

6
推荐指数
1
解决办法
4万
查看次数

如何从已发布的Web Api获取详细信息异常

有没有办法从部署的Web Api获取详细信息异常和堆栈跟踪?

即使我部署在调试模式下,我是否会获得详细的错误跟踪?

我收到了来自服务器API的消息

"message":"处理HTTP请求导致异常.有关详细信息,请参阅此异常的'Response'属性返回的HTTP响应."

这只发生在服务器上,同样的代码在本地机器上运行完美.

error-handling asp.net-web-api

6
推荐指数
2
解决办法
8408
查看次数

如何将新的支付网关集成到[NopCommerce 3.10]中,如果插件不可用?

想知道自定义支付网关与NopCommerce集成的过程是什么.如果我的支付网关插件不可用?

如何为另一个支付网关制作NopCommerce插件?我需要与我的商店整合.

我需要做出哪些改变,整合新的支付网关?进入NopCommerce?

payment-gateway e-commerce nopcommerce payment-processing asp.net-mvc-4

4
推荐指数
1
解决办法
3072
查看次数

如何为MVC4和自定义成员资格配置Ninject?

根据这篇文章描述custom-membership-provider-with-repository-injection

我实现自定义成员资格提供注入.

定制会员提供商

using Ninject;

public class CustomMembershipProvider : MembershipProvider
{
        [Inject]
        public IUserRepository UserRepository { get; set; }

[...]
Run Code Online (Sandbox Code Playgroud)

自定义角色提供者

using Ninject;

public class CustomRoleProvider : RoleProvider
{
      [Inject]
      public IUserRoleRepository UserRoleRepository { get; set; }
[...]
Run Code Online (Sandbox Code Playgroud)

Web.Config中

<membership defaultProvider="CustomsMembershipProvider">
      <providers>
        <clear/>
        <add name="CustomsMembershipProvider" type="namespace.CustomsMembershipProvider"/>
      </providers>
</membership>
<roleManager enabled="true" defaultProvider="customRoleProvider">
      <providers>
        <clear/>
        <add name="customRoleProvider" type="namespace.customRoleProvider"/>
      </providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)

现在在NinjectWebCommon中

private static IKernel CreateKernel()
{
      var kernel = new StandardKernel();
      kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
      kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

      RegisterServices(kernel); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework ninject custom-membershipprovider

2
推荐指数
1
解决办法
2463
查看次数

如何使用Ninject Conventions Extension进行绑定?

我喜欢使用Ninject自动绑定绑定波纹管代码.是否可以在单个项目中同时使用手动和自动绑定?让我们采用波纹管手动绑定,我希望通过自动绑定实现.请告诉我如何实现这一目标.

  1. kernel.Bind<TestContext>().ToSelf().InRequestScope();

  2. kernel.Bind<IUnitOfWork<TestContext>>().To<UnitOfWork<TestContext>>();

Bellow所有接口都继承自基础接口:IRepository <Model>

3. kernel.Bind<IUserRepository>().To<UserRepository>();

4. kernel.Bind<IAccountRepository>().To<AccountRepository>();

5. kernel.Bind<IMessageRepository>().To<MessageRepository>().WithConstructorArgument("apikey", AppSettingsManager.GetSmsApiKey)

额外

我是否需要.Exclude<MessageRepository>()为多个类编写如果我需要这样做,如

.Exclude<ARepository>() .Exclude<BRepository>() .Exclude<CRepository>()

并且对于1和2是否需要单独的手动绑定?或者1可以使用BindToSelf()' and.Configure(b => b.InRequestScope())`

c# dependency-injection ninject ninject-extensions ninject.web.mvc

2
推荐指数
1
解决办法
4840
查看次数