C# 如何访问WSHttpBinding';谁的担保财产?
根据.NET Framework 4.5的C# 如何访问WSHttpBinding';谁的担保财产?,c#,visual-studio-2012,wcf-security,.net-4.5,ws-security,C#,Visual Studio 2012,Wcf Security,.net 4.5,Ws Security,根据.NET Framework 4.5的WSHttpBinding类具有类型为System.ServiceModel.WSHttpSecurity的公共Security属性 问题是WSHttpBinding缺少此属性。如果我使用调试器检查该类型的对象,它将不显示此类属性: 此外,Intellisense不显示任何安全性属性: 重要信息:请注意,我正在使用对象初始值设定项设置安全性属性!视觉上的Stuido对此很好 在中,@Chris Marisic显示了他修改此对象的位置 正在为.NET
WSHttpBinding
类具有类型为System.ServiceModel.WSHttpSecurity
的公共Security
属性
问题是WSHttpBinding
缺少此属性。如果我使用调试器检查该类型的对象,它将不显示此类属性:
此外,Intellisense不显示任何安全性属性:
重要信息:请注意,我正在使用对象初始值设定项设置安全性
属性!视觉上的Stuido对此很好
在中,@Chris Marisic显示了他修改此对象的位置
正在为.NET Framework 4.5编译此应用程序
给出了什么?问题在于ClientBase的属性。Endpoint
的类型为,这是一个泛型抽象类,是所有绑定类型的父类型。所以你看到了那种类型的智能感知
在分配它之前,您需要在实际的WSHttpBinding
实例上设置属性,就像您现在使用对象初始化语法所做的那样。另一种方法是首先将其分配给局部变量:
var binding = new WSHttpBinding(SecurityMode....);
binding.Security = new WSHttpSecurity();
// etc.
service.Endpoint.Binding = binding;
什么类型是service.Endpoint.Binding
?它可能是WSHttpBinding的超级类型,因此它只显示其实际定义类型的相关属性。编辑:是类型,因此您只能看到与该类型相关的属性。它是System.ServiceModel.Channels.Binding
per的泛型类型