public Task <IBinding> TryCreateAsync(BindingProviderContext context) { if (context == null) { throw new ArgumentNullException("context"); } ParameterInfo parameter = context.Parameter; RedisAttribute attribute = parameter.GetCustomAttribute <RedisAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <IBinding>(null)); } IArgumentBinding <RedisEntity> argumentBinding = Provider.TryCreate(parameter); if (argumentBinding == null) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Can't bind to type '{0}'.", parameter.ParameterType)); } var account = RedisAccount.CreateDbFromConnectionString(_config.ConnectionString); IBinding binding = new RedisBinding(parameter.Name, argumentBinding, account, attribute, context, _trace); return(Task.FromResult(binding)); }
public RedisEntity(RedisAccount account, BindingTemplate channelOrKeyPath, Mode mode, IReadOnlyDictionary<string, object> bindingData) { Account = account; Mode = mode; _channelOrKeyPath = channelOrKeyPath; _bindingData = bindingData; }
public RedisEntity(RedisAccount account, BindingTemplate channelOrKeyPath, Mode mode, IReadOnlyDictionary <string, object> bindingData) { Account = account; Mode = mode; _channelOrKeyPath = channelOrKeyPath; _bindingData = bindingData; }
public RedisTriggerBinding(ParameterInfo parameter, RedisAccount account, string channelOrKey, Mode mode, RedisConfiguration config, TraceWriter trace) { _parameter = parameter; _account = account; _channelOrKey = channelOrKey; _mode = mode; _config = config; _bindingDataProvider = BindingDataProvider.FromType(parameter.ParameterType); _trace = trace; }
public RedisBinding(string parameterName, IArgumentBinding <RedisEntity> argumentBinding, RedisAccount account, RedisAttribute attribute, BindingProviderContext context, TraceWriter trace) { _parameterName = parameterName; _argumentBinding = argumentBinding; _account = account; _attribute = attribute; _mode = attribute.Mode; _channelOrKeyPath = BindingTemplate.FromString(attribute.ChannelOrKey); _trace = trace; }
public RedisBinding(string parameterName, IArgumentBinding<RedisEntity> argumentBinding, RedisAccount account, RedisAttribute attribute, BindingProviderContext context, TraceWriter trace) { _parameterName = parameterName; _argumentBinding = argumentBinding; _account = account; _attribute = attribute; _mode = attribute.Mode; _channelOrKeyPath = BindingTemplate.FromString(attribute.ChannelOrKey); _trace = trace; }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException("context"); } ParameterInfo parameter = context.Parameter; RedisTriggerAttribute attribute = parameter.GetCustomAttribute <RedisTriggerAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } RedisAccount account = RedisAccount.CreateDbFromConnectionString(_config.ConnectionString); ITriggerBinding binding = new RedisTriggerBinding(parameter, account, attribute.ChannelOrKey, attribute.Mode, _config, _trace); return(Task.FromResult(binding)); }
private static void Main(string[] args) { //ArrayTest(); //Utility.YHSJ(6); //var result = MatchEx.Max(1, 2, 3, 4); //WriteLine(result); //result = MatchEx.Min(1, 2, 3, 4); //WriteLine(result); //List<int> array = new List<int>() { 1, 2, 3, 4, 5 }; //var enumerator = array.GetEnumerator(); //while (enumerator.MoveNext()) //{ // Console.WriteLine(enumerator.Current); //} //WriteLine("------------------------"); //Stack<int> stack = new Stack<int>(); //stack.Push(1); //stack.Push(2); //stack.Push(3); //stack.Push(4); //stack.Push(5); //stack.Push(6); //var stackEnumerator = stack.GetEnumerator(); //while (stackEnumerator.MoveNext()) //{ // WriteLine(stackEnumerator.Current); //} //var test=new MethodOverloads(); //test.Foo(33); //test.Foo("abc"); //test.Bar(44); //ReadLine(); //var list = new List<int> {1, 2, 3, 4, 5}; //var list1=list.Where(r => r > 1); var list = new List <int>(); list.Add(true, 1); list.Add(false, 2); list.Add(true, 3); list.Add(true, 4); list.Add(false, 5); WriteLine(string.Join(",", list)); return; var database = RedisManager.Instance.GetDatabase(); //database.StringSet("00000000", "123", TimeSpan.FromSeconds(1)); //WriteLine(database.KeyExists("00000000")); //Thread.Sleep(2000); //WriteLine(database.KeyExists("00000000")); //for (int i = 0; i < 10000; i++) //{ // database.StringSet($"key{i}",i); //} var redisAccount = new RedisAccount() { Name = "qbadmin11", LastOnlineIP = "127.0.0.1", Password = "******", Salt = "123", Ticket = "345", UserDisplayName = "11", UserId = "22" }; Task.Factory.StartNew(() => { database.HashSetAsync($"account_{redisAccount.Name}", new HashEntry[] { new HashEntry(nameof(redisAccount.Name), redisAccount.Name), new HashEntry(nameof(redisAccount.LastOnlineIP), redisAccount.LastOnlineIP), new HashEntry(nameof(redisAccount.Password), redisAccount.Password), new HashEntry(nameof(redisAccount.Salt), redisAccount.Salt), new HashEntry(nameof(redisAccount.Ticket), redisAccount.Ticket), new HashEntry(nameof(redisAccount.UserId), redisAccount.UserId), new HashEntry(nameof(redisAccount.UserDisplayName), redisAccount.UserDisplayName), }).ConfigureAwait(false); }); //database.HashSet($"account_{redisAccount.Name}", // new HashEntry[] // { // new HashEntry(nameof(redisAccount.Name),redisAccount.Name), // new HashEntry(nameof(redisAccount.LastOnlineIP),redisAccount.LastOnlineIP), // new HashEntry(nameof(redisAccount.Password),redisAccount.Password), // new HashEntry(nameof(redisAccount.Salt),redisAccount.Salt), // new HashEntry(nameof(redisAccount.Ticket),redisAccount.Ticket), // new HashEntry(nameof(redisAccount.UserId),redisAccount.UserId), // new HashEntry(nameof(redisAccount.UserDisplayName),redisAccount.UserDisplayName), // }); //WriteLine(database.HashGet($"account_{redisAccount.Name}", nameof(redisAccount.Name))); var hashlist = database.HashGetAll($"account_{redisAccount.Name}"); WriteLine($"{nameof(redisAccount.Name)}:{hashlist.FirstOrDefault(c=>c.Name==nameof(redisAccount.Name)).Value}"); WriteLine($"{nameof(redisAccount.LastOnlineIP)}:{hashlist.FirstOrDefault(c => c.Name == nameof(redisAccount.LastOnlineIP)).Value}"); WriteLine($"{nameof(redisAccount.Password)}:{hashlist.FirstOrDefault(c => c.Name == nameof(redisAccount.Password)).Value}"); WriteLine($"{nameof(redisAccount.Salt)}:{hashlist.FirstOrDefault(c => c.Name == nameof(redisAccount.Salt)).Value}"); WriteLine($"{nameof(redisAccount.Ticket)}:{hashlist.FirstOrDefault(c => c.Name == nameof(redisAccount.Ticket)).Value}"); WriteLine($"{nameof(redisAccount.UserId)}:{hashlist.FirstOrDefault(c => c.Name == nameof(redisAccount.UserId)).Value}"); WriteLine($"{nameof(redisAccount.UserDisplayName)}:{hashlist.FirstOrDefault(c => c.Name == nameof(redisAccount.UserDisplayName)).Value}"); //hashlist.ForEach(item => //{ // WriteLine(item.Name); // WriteLine(item.Value); //}); //var keys=RedisManager.Server.Keys(); //keys.ForEach(item => { WriteLine(item); }); return; Permission permission = Permission.Create | Permission.Read | Permission.Update | Permission.Delete; WriteLine("1、枚举创建,并赋值"); WriteLine(permission.ToString()); //Create, Read, Update, Delete WriteLine((int)permission); //15 permission = (Permission)Enum.Parse(typeof(Permission), "5"); WriteLine("2、通过数字字符串转换......"); WriteLine(permission.ToString()); //Create, Update WriteLine((int)permission); //5 permission = (Permission)Enum.Parse(typeof(Permission), "update,delete,read", true); WriteLine("3、通过枚举名称字符串转换......"); WriteLine(permission.ToString()); //Read, Update, Delete WriteLine((int)permission); //14 permission = (Permission)7; WriteLine("4、直接用数字强制转换......"); WriteLine(permission.ToString()); //Create, Read, Update WriteLine((int)permission); //7 permission = permission & ~Permission.Read; WriteLine("5、去掉一个枚举项"); WriteLine(permission.ToString()); //Create, Update WriteLine((int)permission); //5 permission = permission | Permission.Delete; WriteLine("6、加上一个枚举项"); WriteLine(permission.ToString()); //Create, Update, Delete WriteLine((int)permission); //13 WriteLine(permission.HasFlag(Permission.Delete)); //True if (permission.HasFlag(Permission.Delete)) { WriteLine("!!!!!!!!"); } WriteLine(permission.GetHashCode()); WriteLine(permission.GetTypeCode()); return; string fullPath = @"~\\WebSite1\\Default.aspx"; Console.WriteLine(fullPath.GetFileName()); Console.WriteLine(fullPath.GetFileExtension()); Console.WriteLine(fullPath.GetFileNameWithoutExtension()); Console.WriteLine(fullPath.GetDirectoryName()); var myClass = new MyClass(); Console.WriteLine(nameof(MyClass)); Console.WriteLine(nameof(myClass)); Console.WriteLine(nameof(myClass.Name).Trim().ToLower()); return; var properties = new NameValueCollection(); properties["quartz.scheduler.instanceName"] = "RemoteServerSchedulerClient"; //设置线程池 properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz"; properties["quartz.threadPool.threadCount"] = "5"; properties["quartz.threadPool.threadPriority"] = "Normal"; //远程输出配置 properties["quartz.scheduler.exporter.type"] = "Quartz.Simpl.RemotingSchedulerExporter, Quartz"; properties["quartz.scheduler.exporter.port"] = "556"; properties["quartz.scheduler.exporter.bindName"] = "QuartzScheduler"; properties["quartz.scheduler.exporter.channelType"] = "tcp"; var schedulerFactory = new StdSchedulerFactory(properties); var scheduler = schedulerFactory.GetScheduler(); var job = JobBuilder.Create <PrintMessageJob>() .WithIdentity(nameof(PrintMessageJob), "group1") .Build(); var trigger = TriggerBuilder.Create() .WithIdentity("myJobTrigger", "group1") .StartNow() .WithCronSchedule("/2 * * ? * *") .Build(); scheduler.ScheduleJob(job, trigger); scheduler.Start(); }