コード例 #1
0
        internal static void ValidateOptions(RpcOptions options)
        {
            AssertHelper.ValidateIsNotNull(options.Requests, nameof(options.Requests));
            AssertHelper.ValidateIsNotNull(options.MatchingConvention, nameof(options.MatchingConvention));

            var nonMediatrRequests = options.Requests
                                     .Where(t => false == RequestTypeScanner.IsMediatrRequest(t))
                                     .ToList();

            if (nonMediatrRequests.Any())
            {
                var nonMediatrRequestTypeNames = nonMediatrRequests
                                                 .Aggregate(new System.Text.StringBuilder(), (a, t) => a.AppendLine(t.FullName));
                throw new ArgumentException($"All request types needs to derive from {nameof(IRequest)}. Non-accepted types: {nonMediatrRequestTypeNames}", nameof(options.Requests));
            }
        }
コード例 #2
0
 public RequestFactory()
 {
     this.requests = RequestTypeScanner
                     .FindRequestTypes(GetType().Assembly.GetTypes())
                     .ToDictionary(t => t, t => Activator.CreateInstance(t));
 }