با تشکر ولی به نظر سیلورلایت نداره . لطفا اینجا رو یه چک بکنید . نوشته که
"Note: DirectoryCatalog is not supported in Silverlight."
"Note: DirectoryCatalog is not supported in Silverlight."
internal interface IValidation { bool IsValid(string sendNamesEndTo, string handlerNamesEndTo); }
public bool IsValid(string commandNamesEndTo = "Command", string commandHandlersEndTo = "CommandHandler") { var assemblies = AppDomain.CurrentDomain.GetAssemblies(); var commandTypeInfos = assemblies.SelectMany(x => x.DefinedTypes.Where(typeInfo => typeInfo.Name.ToLower().EndsWith(commandNamesEndTo.ToLower()) && typeInfo.ImplementedInterfaces.Any(type => type == typeof(IBaseRequest)))); var memberInfos = commandTypeInfos as TypeInfo[] ?? commandTypeInfos.ToArray(); if (!memberInfos.Any()) throw new ArgumentException("Can not find any Command"); var handlerTypeInfo = assemblies.SelectMany(x => x.DefinedTypes.Where(typeInfo => typeInfo.Name.ToLower().EndsWith(commandHandlersEndTo.ToLower()))); var typeInfos = handlerTypeInfo as TypeInfo[] ?? handlerTypeInfo.ToArray(); if (!typeInfos.Any()) throw new ArgumentException("Can not find any CommandHandler"); if (typeInfos.Count() != memberInfos.Count()) return false; return !(from typeInfo in memberInfos let interfaces = typeInfos.SelectMany(x => x.ImplementedInterfaces) where interfaces.Any(x => x.GenericTypeArguments.All(type => type != typeInfo)) select typeInfo).Any(); }
public bool IsValid(string commandNamesEndTo = "Command", string commandHandlersEndTo = "CommandHandler")
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var commandTypeInfos = assemblies.SelectMany(x => x.DefinedTypes.Where(typeInfo => typeInfo.Name.ToLower().EndsWith(commandNamesEndTo.ToLower()) && typeInfo.ImplementedInterfaces.Any(type => type == typeof(IBaseRequest)))); var memberInfos = commandTypeInfos as TypeInfo[] ?? commandTypeInfos.ToArray(); if (!memberInfos.Any()) throw new ArgumentException("Can not find any Command");
var handlerTypeInfo = assemblies.SelectMany(x => x.DefinedTypes.Where(typeInfo => typeInfo.Name.ToLower().EndsWith(commandHandlersEndTo.ToLower()))); var typeInfos = handlerTypeInfo as TypeInfo[] ?? handlerTypeInfo.ToArray(); if (!typeInfos.Any()) throw new ArgumentException("Can not find any CommandHandler");
if (typeInfos.Count() != memberInfos.Count()) return false;
return !(from typeInfo in memberInfos let interfaces = typeInfos.SelectMany(x => x.ImplementedInterfaces) where interfaces.Any(x => x.GenericTypeArguments.All(type => type != typeInfo)) select typeInfo).Any();
var validCommandConfiguration = new CommandValidator().IsValid();
public class UserVM { public string Name { get; set; } public bool Gender { get; set; } public string Soldier { get; set; } }
public class SoldierValidation : ValidationAttribute { public override bool IsValid(object value) { UserVM app = value as UserVM ; if (app.Gender && app.Soldier.Length==0) { ErrorMessage = "لطفا محل خدمت را وارد نمایید"; return false; } return true; } }
[SoldierValidation ] public class UserVM { public string Name { get; set; } public bool Gender { get; set; } public string Soldier { get; set; } }
PM> Install-Package foolproof
public class UserVM { public string Name { get; set; } public bool Gender { get; set; } [RequiredIfTrue("Gender ")] public string Soldier { get; set; } }
public class EventViewModel { public string Name { get; set; } public DateTime Start { get; set; } [Required] [GreaterThan("Start")] public DateTime End { get; set; } }
[Is] [EqualTo] [NotEqualTo] [GreaterThan] [LessThan] [GreaterThanOrEqualTo] [LessThanOrEqualTo]
[RequiredIf] [RequiredIfNot] [RequiredIfTrue] [RequiredIfFalse] [RequiredIfEmpty] [RequiredIfNotEmpty] [RequiredIfRegExMatch] [RequiredIfNotRegExMatch]