我想自定义asp.net mvc核心的验证。我的主要目标是在action方法中绑定接口。 我通过阅读这篇优秀文章找到了解决方案:Model binding interfaces: fixing server side validation。
在实现接口IObjectModelValidator并在startuo类中配置服务后,我想知道验证过程为什么不调用我的新objectModelValidator。
当我通过执行此指令检查我的操作时:requestServices.GetRequiredService<IObjectModelValidator>()
我只找到了defaultObjectModelValidator。
我错过了什么吗?
答案 0 :(得分:0)
我通过调试Asp.net MVC核心源找到了错误,我在ConfigureServices方法中使用了tryAddSingleton方法而不是AddSingleton方法。 第一种方法在添加服务之前检查是否已存在具有相同类型的服务,并且它不会添加我的第二个服务。 通过AddSingleton更改TryAddSingleton就可以了!
import random
import numpy as np
np.set_printoptions(threshold=np.nan)
for i in range (100):
binary= np.random.randint (2, size=(10, 4))
print("binary:" '\n',binary)
value = np.random.randint (200, size=(10, 1))
print("value:" '\n',value)
for i in range (2):
# the loseer how have the of the binarys who has the smaslets value
loser = np.argmin(value)
# print ("loser:",loser)
# print("loser:", loser,(value[loser]))
# print (binary[loser,])
# print("Loser=", "Index:", loser,"value:",(value[loser]), "binary:",(binary[loser,]))
print("Index:", loser)
print("value:",(value[loser]))
print("binary:",(binary[loser,]))
print("Loser=", "Index:", loser,"value:",(value[loser]), "binary:",(binary[loser,]))
binary = np.delete(binary, (loser), axis=0)
print("binary:" '\n',binary)