本文整理汇总了C#中Registry.Register方法的典型用法代码示例。如果您正苦于以下问题:C# Registry.Register方法的具体用法?C# Registry.Register怎么用?C# Registry.Register使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Registry
的用法示例。
在下文中一共展示了Registry.Register方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ControllerInfo
public ControllerInfo(Type type)
{
string aname = null;
try
{
Type = type;
m_Name = TypeToKeyName(type);
var groups = new Registry<ActionGroupInfo>();
Groups = groups;
var allmi = GetAllActionMethods();
foreach(var mi in allmi)
{
var iname = GetInvocationName(mi);
aname = iname;
var agi = groups[iname];
if (agi==null)
{
agi = new ActionGroupInfo(this, iname);
groups.Register(agi);
}
aname = null;
}
}
catch(Exception error)
{
throw new WaveException(StringConsts.MVC_CONTROLLER_REFLECTION_ERROR.Args(type.FullName, aname, error.ToMessageWithType()), error);
}
}
示例2: Resolving_concrete_type_resolves_all_dependencies
public void Resolving_concrete_type_resolves_all_dependencies()
{
var registry = new Registry();
registry.Register<Interface1, Class1>();
registry.Register<Interface2, Class2>();
registry.Register<Interface3, Class3>();
registry.Register<Interface4, Class4>();
var instance = registry.Resolve<Interface1>();
Assert.IsNotNull(instance);
Assert.IsNotNull(instance.Class2);
Assert.IsNotNull(instance.Class3);
Assert.IsNotNull(instance.Class2.Class3);
Assert.IsNotNull(instance.Class3.Class4);
}
示例3: Registry
public void Registry()
{
var reg = new Registry<NamedClazz>();
Assert.IsTrue( reg.Register( new NamedClazz("Apple", 1) ) );
Assert.IsTrue( reg.Register( new NamedClazz("Banana", 2) ) );
Assert.IsFalse( reg.Register( new NamedClazz("Apple", 3) ) );
Assert.AreEqual(2, reg.Count);
Assert.AreEqual(1, reg["Apple"].Data);
Assert.AreEqual(2, reg["Banana"].Data);
Assert.AreEqual(null, reg["Grapes"]);
Assert.IsFalse( reg.Unregister(new NamedClazz("I was never added before", 1)) );
Assert.AreEqual(2, reg.Count);
Assert.IsTrue( reg.Unregister(new NamedClazz("Apple", 1)) );
Assert.AreEqual(1, reg.Count);
Assert.AreEqual(null, reg["Apple"]);
Assert.AreEqual(2, reg["Banana"].Data);
}
示例4: Processes_WhenHandlerTypeDoesNotHaveProcessMethod_ThrowsArgumentException
public void Processes_WhenHandlerTypeDoesNotHaveProcessMethod_ThrowsArgumentException()
{
TestHelper.Act(
() =>
{
var sut = new Registry();
sut.Register("name")
.Processes<object>();
})
.ExpectMessageContains<ArgumentException>("System.Object does not have a public, instance method named Process.");
}
示例5: Portal
/// <summary>
/// Makes portal from config.
/// Due to the nature of Portal object there is no need to create other parametrized ctors
/// </summary>
protected Portal(IConfigSectionNode conf)
{
const string PORTAL = "portal";
m_Name = conf.AttrByName(Configuration.CONFIG_NAME_ATTR).Value;
if (m_Name.IsNullOrWhiteSpace())
{
m_Name = this.GetType().Name;
if (m_Name.EndsWith(PORTAL, StringComparison.OrdinalIgnoreCase) && m_Name.Length>PORTAL.Length)
m_Name = m_Name.Substring(0, m_Name.Length-PORTAL.Length);
}
m_Description = conf.AttrByName(CONFIG_DESCR_ATTR).ValueAsString(m_Name);
m_Offline = conf.AttrByName(CONFIG_OFFLINE_ATTR).ValueAsBool(false);
m_Default = conf.AttrByName(CONFIG_DEFAULT_ATTR).ValueAsBool(false);
var puri = conf.AttrByName(CONFIG_PRIMARY_ROOT_URI_ATTR).Value;
try{ m_PrimaryRootUri = new Uri(puri, UriKind.Absolute); }
catch(Exception error)
{
throw new WaveException(StringConsts.CONFIG_PORTAL_ROOT_URI_ERROR.Args(m_Name, error.ToMessageWithType()), error);
}
m_Themes = new Registry<Theme>();
var nthemes = conf.Children.Where(c => c.IsSameName(CONFIG_THEME_SECTION));
foreach(var ntheme in nthemes)
{
var theme = FactoryUtils.Make<Theme>(ntheme, args: new object[]{this, ntheme});
if(!m_Themes.Register(theme))
throw new WaveException(StringConsts.CONFIG_PORTAL_DUPLICATE_THEME_NAME_ERROR.Args(theme.Name, m_Name));
}
if (m_Themes.Count==0)
throw new WaveException(StringConsts.CONFIG_PORTAL_NO_THEMES_ERROR.Args(m_Name));
m_DefaultTheme = m_Themes.FirstOrDefault(t => t.Default);
if (m_DefaultTheme==null)
throw new WaveException(StringConsts.CONFIG_PORTAL_NO_DEFAULT_THEME_ERROR.Args(m_Name));
ConfigAttribute.Apply(this, conf);
}//.ctor
示例6: Processes_WhenCalledMultipleTimes_RegistersEachHandlerType
public void Processes_WhenCalledMultipleTimes_RegistersEachHandlerType()
{
const string instanceName = "empty";
var handlerCache = new HandlerCache();
handlerCache.Set(0);
var sut = new Registry();
sut.Register(instanceName)
.Processes<CounterHandler>()
.Processes<CounterHandler>();
var container = new Container(sut);
HandlerProcessor processor = container.With(handlerCache).GetInstance<HandlerProcessor>(instanceName);
processor.Process();
Assert.AreEqual(2, handlerCache.Get(typeof(int)));
}
示例7: Processes_WhenHandlerTypeHasProcessMethod_RegistersHandlerType
public void Processes_WhenHandlerTypeHasProcessMethod_RegistersHandlerType()
{
const string instanceName = "empty";
var handlerCache = new HandlerCache();
var sut = new Registry();
sut.Register(instanceName)
.Processes<EmptyHandler>();
var container = new Container(sut);
HandlerProcessor processor = container.With(handlerCache).GetInstance<HandlerProcessor>(instanceName);
processor.Process();
Assert.IsTrue(container.Model.For<HandlerProcessor>().HasImplementations(), "Missing implementations.");
Assert.IsNotNull(container.Model.Find<HandlerProcessor>(instanceName));
Assert.AreEqual("message", handlerCache.Get(typeof(string)));
}
示例8: CaseSensitive
public void CaseSensitive()
{
var reg = new Registry<NamedClazz>(true);//SENSITIVE!!!!!!!!!!!!!!!!!!!!!!!!!!!
Assert.IsTrue( reg.Register( new NamedClazz("Apple", 1) ) );
Assert.IsTrue( reg.Register( new NamedClazz("Banana", 2) ) );
Assert.IsTrue( reg.Register( new NamedClazz("APPLE", 3) ) );
Assert.AreEqual(3, reg.Count);
Assert.AreEqual(1, reg["Apple"].Data);
Assert.AreEqual(2, reg["Banana"].Data);
Assert.AreEqual(3, reg["APPLE"].Data);
Assert.IsFalse( reg.Unregister(new NamedClazz("I was never added before", 1)) );
Assert.AreEqual(3, reg.Count);
Assert.IsFalse( reg.Unregister(new NamedClazz("AppLE", 1)) );
Assert.AreEqual(3, reg.Count);
Assert.IsTrue( reg.Unregister(new NamedClazz("APPLE", 3)) );
Assert.AreEqual(2, reg.Count);
Assert.AreEqual(1, reg["Apple"].Data);
Assert.AreEqual(2, reg["Banana"].Data);
Assert.AreEqual(null, reg["APPLE"]);
}
示例9: Register
public override void Register(string Tag, Registry Registry, int Index)
{
Registry.Register (Tag, Index);
Registry.Register ("no" + Tag, Index);
}
示例10: Portal
/// <summary>
/// Makes portal from config.
/// Due to the nature of Portal object there is no need to create other parametrized ctors
/// </summary>
protected Portal(IConfigSectionNode conf)
: base(PortalHub.Instance)
{
const string PORTAL = "portal";
m_Name = conf.AttrByName(Configuration.CONFIG_NAME_ATTR).Value;
if (m_Name.IsNullOrWhiteSpace())
{
m_Name = this.GetType().Name;
if (m_Name.EndsWith(PORTAL, StringComparison.OrdinalIgnoreCase) && m_Name.Length>PORTAL.Length)
m_Name = m_Name.Substring(0, m_Name.Length-PORTAL.Length);
}
//Register with the Hub
if (!PortalHub.Instance.m_Portals.Register( this ))
throw new WaveException(StringConsts.PORTAL_HUB_INSTANCE_ALREADY_CONTAINS_PORTAL_ERROR.Args(m_Name));
m_Description = conf.AttrByName(CONFIG_DESCR_ATTR).ValueAsString(m_Name);
m_Offline = conf.AttrByName(CONFIG_OFFLINE_ATTR).ValueAsBool(false);
m_Default = conf.AttrByName(CONFIG_DEFAULT_ATTR).ValueAsBool(false);
var puri = conf.AttrByName(CONFIG_PRIMARY_ROOT_URI_ATTR).Value;
try{ m_PrimaryRootUri = new Uri(puri, UriKind.Absolute); }
catch(Exception error)
{
throw new WaveException(StringConsts.CONFIG_PORTAL_ROOT_URI_ERROR.Args(m_Name, error.ToMessageWithType()), error);
}
m_DisplayName = conf.AttrByName(CONFIG_DISPLAY_NAME_ATTR).Value;
if (m_DisplayName.IsNullOrWhiteSpace())
m_DisplayName = m_PrimaryRootUri.ToString();
m_Themes = new Registry<Theme>();
var nthemes = conf.Children.Where(c => c.IsSameName(CONFIG_THEME_SECTION));
foreach(var ntheme in nthemes)
{
var theme = FactoryUtils.Make<Theme>(ntheme, args: new object[]{this, ntheme});
if(!m_Themes.Register(theme))
throw new WaveException(StringConsts.CONFIG_PORTAL_DUPLICATE_THEME_NAME_ERROR.Args(theme.Name, m_Name));
}
if (m_Themes.Count==0)
throw new WaveException(StringConsts.CONFIG_PORTAL_NO_THEMES_ERROR.Args(m_Name));
m_DefaultTheme = m_Themes.FirstOrDefault(t => t.Default);
if (m_DefaultTheme==null)
throw new WaveException(StringConsts.CONFIG_PORTAL_NO_DEFAULT_THEME_ERROR.Args(m_Name));
m_ParentName = conf.AttrByName(CONFIG_PARENT_NAME_ATTR).Value;
ConfigAttribute.Apply(this, conf);
m_LocalizableContent = new Dictionary<string,string>(GetLocalizableContent(), StringComparer.InvariantCultureIgnoreCase);
foreach(var atr in conf[CONFIG_LOCALIZATION_SECTION][CONFIG_CONTENT_SECTION].Attributes)
m_LocalizableContent[atr.Name] = atr.Value;
var gen = conf[CONFIG_RECORD_MODEL_SECTION];
m_RecordModelGenerator = FactoryUtils.Make<Client.RecordModelGenerator>(gen,
typeof(Client.RecordModelGenerator),
new object[]{gen});
m_RecordModelGenerator.ModelLocalization += recGeneratorLocalization;
m_LocalizationData = conf[CONFIG_LOCALIZATION_SECTION];
var msgFile = m_LocalizationData.AttrByName(CONFIG_MSG_FILE_ATTR).Value;
if (msgFile.IsNotNullOrWhiteSpace())
try
{
m_LocalizationData = Configuration.ProviderLoadFromFile(msgFile).Root;
}
catch(Exception fileError)
{
throw new WaveException(StringConsts.CONFIG_PORTAL_LOCALIZATION_FILE_ERROR.Args(m_Name, msgFile, fileError.ToMessageWithType()), fileError);
}
}
示例11: NetAdapterInfo
internal NetAdapterInfo(NetworkInterface nic, int order)
{
m_Name = "{0}::{1}".Args(nic.Id, nic.Name);
m_Order = order;
m_Description = nic.Description;
m_ReceiveOnly = nic.IsReceiveOnly;
m_AdapterType = nic.NetworkInterfaceType.ToString();
m_Status = nic.OperationalStatus.ToString();
m_Speed = nic.Speed;
m_IPv4Support = nic.Supports( NetworkInterfaceComponent.IPv4 );
m_IPv6Support = nic.Supports( NetworkInterfaceComponent.IPv6 );
var addrs = nic.GetIPProperties().UnicastAddresses;
m_Addresses = new Registry<NetAddrInfo>();
var ord = 0;
foreach(var addr in addrs)
{
m_Addresses.Register( new NetAddrInfo(addr, ord) );
ord++;
}
}
示例12: configTaxCalculators
private void configTaxCalculators(IConfigSectionNode nTax)
{
var calculators = new Registry<TaxCalculator>();
var nCalculators = nTax.Children.Where(n => n.IsSameName(CONFIG_TAX_CALCULATOR_SECTION));
foreach (var nCalculator in nCalculators)
{
var calculator = FactoryUtils.MakeAndConfigure<TaxCalculator>(nCalculator, typeof(TaxCalculator), new object[] { null, nCalculator});
calculators.Register(calculator);
}
m_TaxCalculators = calculators;
}
示例13: configSocial
private void configSocial(IConfigSectionNode nSocial)
{
var networks = new Registry<SocialNetwork>();
var nProviders = nSocial.Children.Where(n => n.IsSameName(CONFIG_SOCIAL_PROVIDER_SECTION));
foreach (var nProv in nProviders)
{
var provider = FactoryUtils.MakeAndConfigure<SocialNetwork>(nProv, typeof(SocialNetwork), new object[] { null, nProv});
networks.Register(provider);
}
m_SocialNetworks = networks;
}
示例14: Configure
/// <summary>
/// Configures store from node, if node==null then store will be configured by named node of 'app/cache/store[name=X]' path, if such path
/// is not found the store tries to find 'app/cache/store[!name]' (node without name)
/// </summary>
public void Configure(IConfigSectionNode node)
{
if (node==null)
{
node = App.ConfigRoot[CONFIG_CACHE_SECTION]
.Children
.FirstOrDefault(s => s.IsSameName(CONFIG_STORE_SECTION) && s.IsSameNameAttr(Name) );
if (node==null)
{
node = App.ConfigRoot[CONFIG_CACHE_SECTION]
.Children
.FirstOrDefault(s => s.IsSameName(CONFIG_STORE_SECTION) && !s.AttrByName(Configuration.CONFIG_NAME_ATTR).Exists);
if (node==null) return;
}
}
ConfigAttribute.Apply(this, node);
m_TableOptions = new Registry<TableOptions>();
foreach(var tn in node.Children.Where(cn => cn.IsSameName(CONFIG_TABLE_SECTION)) )
{
var tbl = new TableOptions();
((IConfigurable)tbl).Configure(tn);
m_TableOptions.Register( tbl );
}
}
示例15: Registry_Clear
public void Registry_Clear()
{
var reg = new Registry<NamedClazz>();
Assert.IsTrue( reg.Register( new NamedClazz("Apple", 1) ) );
Assert.IsTrue( reg.Register( new NamedClazz("Banana", 2) ) );
Assert.IsFalse( reg.Register( new NamedClazz("Apple", 3) ) );
Assert.AreEqual(2, reg.Count);
Assert.AreEqual(1, reg["Apple"].Data);
Assert.AreEqual(2, reg["Banana"].Data);
Assert.AreEqual(null, reg["Grapes"]);
reg.Clear();
Assert.AreEqual(0, reg.Count);
Assert.AreEqual(null, reg["Apple"]);
Assert.AreEqual(null, reg["Banana"]);
}