我所拥有的是一个阶段,一些接口,以及注册部分.问题是我需要将一些参数定义为固定,将其他参数定义为变量.
interface IDoSomething {
void DoWork();
}
interface IDoMath(){
void DoWork();
}
interface IBehaviorBusiness{
void Do();
}
class BehaviorBusiness {
...
public BehaviorBusiness(IDoSomething doSomething, IDoMatch doMatch, string connection){};
...
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用windsor容器在声明中定义参数连接,IDosomething 并IDoMatch从容器中取出?
container.Register(
Component.For<IDoSomething>()
...
}
container.Register(
Component.For<IDoMatch>()
...
);
Run Code Online (Sandbox Code Playgroud)
这是具体问题.
container.Register(
Component.For<IBehaviorBusiness>()
.ImplementedBy<BehaviorBusiness>()
.DependsOn(Dependency.OnComponent<IDoSomething, [default]>(),
Dependency.OnComponent<IDoMatch, [default]>(),
Dependency.OnValue("connection", connectionString))
.LifeStyle.Transient
);
Run Code Online (Sandbox Code Playgroud)
如果它存在,哪个是正确的语法?
我需要XmlTypeAttribute从以下类中读取,以获取Namespace值:
<System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42"), _
System.SerializableAttribute(), _
System.Diagnostics.DebuggerStepThroughAttribute(), _
System.ComponentModel.DesignerCategoryAttribute("code"), _
System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://webservices.micros.com/ows/5.1/Availability.wsdl")> _
Partial Public Class AvailabilityRequest
Inherits AvailRequestSegmentList
Private summaryOnlyField As Boolean
Private xsnField As System.Xml.Serialization.XmlSerializerNamespaces
'''<comentarios/>
<System.Xml.Serialization.XmlAttributeAttribute()> _
Public Property summaryOnly() As Boolean
Get
Return Me.summaryOnlyField
End Get
Set
Me.summaryOnlyField = value
End Set
End Property
Run Code Online (Sandbox Code Playgroud)
使用以下代码,我可以获取System.SerializableAttribute的值,但我无法检索有关XmlTypeAttribute的信息.
var ar = typeof (AvailabilityRequest).GetType();
ar.GetCustomAttributes(true);
Run Code Online (Sandbox Code Playgroud)
更新2011.12.29
以下代码现在有效:
var xmlAttribute = (XmlTypeAttribute)Attribute.GetCustomAttribute(
typeof(AvailabilityRequest),
typeof(XmlTypeAttribute)
);
XNamespace ns = xmlAttribute.Namespace;
ns.NamespaceName.Should().Be.EqualTo("http://webservices.micros.com/ows/5.1/Availability.wsdl");
Run Code Online (Sandbox Code Playgroud)