12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Aitex.Core.Util
- {
- [AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field)]
- public class SubscriptionAttribute : Attribute
- {
- public enum FLAG
- {
- SaveDB = 0x00,
- IgnoreSaveDB = 0x01,
- }
- public string ModuleKey { get { return string.IsNullOrEmpty(Module) ? Key : (Module + "." + Key); } }
- public readonly string Key;
- public string Module { get; internal set; }
- public readonly string Method;
- public readonly int Flag;
- public readonly object[] Params;
-
- public SubscriptionAttribute(string key, int flag = 0, string module="")
- {
- if (string.IsNullOrWhiteSpace(key))
- throw new ArgumentNullException("key");
- Key = key;
- Flag = flag;
- Module = module;
- }
- public SubscriptionAttribute(string key, string module)
- {
- if (string.IsNullOrWhiteSpace(key))
- throw new ArgumentNullException("key");
- Key = key;
- Flag = (int)FLAG.SaveDB;
- Module = module;
- }
- public SubscriptionAttribute(object key, string module)
- {
- if (string.IsNullOrWhiteSpace(key.ToString()))
- throw new ArgumentNullException("key");
- Key = key.ToString();
- Flag = (int)FLAG.IgnoreSaveDB;
- Module = module;
- }
- public SubscriptionAttribute(object key)
- {
- if (string.IsNullOrWhiteSpace(key.ToString()))
- throw new ArgumentNullException("key");
- Key = key.ToString();
- Flag = (int)FLAG.IgnoreSaveDB;
- Module = "";
- }
- public void SetModule(string module)
- {
- Module = module;
- }
- public SubscriptionAttribute(string key, string module, string deviceName, string deviceType)
- {
- if (string.IsNullOrWhiteSpace(key))
- throw new ArgumentNullException("key");
- Key = string.Format("{0}.{1}.{2}", deviceType, deviceName, key);
- Flag = (int)FLAG.SaveDB;
- Module = module;
- }
- public SubscriptionAttribute(string key, string module, params object[] args)
- {
- if (string.IsNullOrWhiteSpace(key))
- throw new ArgumentNullException("key");
- Key = key;
- Flag = (int)FLAG.SaveDB;
- Module = module;
- Params = args;
- }
- }
- }
|