我对元数据发布概念感到困惑.
如果在WCF服务配置文件中我写了:
<serviceMetadata httpGetEnabled="false"/>
Run Code Online (Sandbox Code Playgroud)
无论是真是假.当我尝试使用"添加服务引用..."在客户端应用程序中提供服务引用并单击"发现"时,我能够检索服务引用.
但删除以下两行: -
<endpoint address="mex" binding="mexBasicHttpBinding" contract="IMetadataExchange"/>
<serviceMetadata httpGetEnabled="false"/>
Run Code Online (Sandbox Code Playgroud)
如今后,当我试图给使用客户端应用程序引用"添加服务引用...",并点击"查看",我不能够检索服务参考.
现在任何人都可以告诉我它究竟意味着什么.为什么在将其设置为False之后仍然允许设置参考.为什么在删除这些行之后它不允许设置引用.
-Anil
我有一个像这样的字符串 -
var roleDetails = "09A880C2-8732-408C-BA09-4AD6F0A65CE9^Z:WB:SELECT_DOWNLOAD:0000^Product Delivery - Download^1,24B11B23-1669-403F-A24D-74CE72DFD42A^Z:WB:TRAINING_SUBSCRIBER:0000^Training Subscriber^1,6A4A6543-DB9F-46F2-B3C9-62D69D28A0B6^Z:WB:LIC_MGR_HOME_REDL:0000^License Manager - Home use^1,76B3B165-0BB4-4E3E-B61F-0C0292342CE2^Account Admin^Account Admin^1,B3C0CE51-00EE-4A0A-B208-98653E21AE11^Z:WB:1BENTLEY_ISA_ADMIN:0000^Co-Administrator^1,CBA225BC-680C-4627-A4F6-BED401682816^ReadOnly^ReadOnly^1,D80CF5CF-CB6E-4424-9D8F-E29F96EBD4C9^Z:WB:MY_SELECT_CD:0000^Product Delivery - DVD^1,E0275936-FBBB-4775-97D3-9A7D19D3E1B4^Z:WB:LICENSE_MANAGER:0000^License Manager^1";
Run Code Online (Sandbox Code Playgroud)
用","分割它会返回 -
[0] "09A880C2-8732-408C-BA09-4AD6F0A65CE9^Z:WB:SELECT_DOWNLOAD:0000^Product Delivery - Download^1"
[1] "24B11B23-1669-403F-A24D-74CE72DFD42A^Z:WB:TRAINING_SUBSCRIBER:0000^Training Subscriber^1"
[2] "6A4A6543-DB9F-46F2-B3C9-62D69D28A0B6^Z:WB:LIC_MGR_HOME_REDL:0000^License Manager - Home use^1"
[3] "76B3B165-0BB4-4E3E-B61F-0C0292342CE2^Account Admin^Account Admin^1"
[4] "B3C0CE51-00EE-4A0A-B208-98653E21AE11^Z:WB:1BENTLEY_ISA_ADMIN:0000^Co-Administrator^1"
[5] "CBA225BC-680C-4627-A4F6-BED401682816^ReadOnly^ReadOnly^1"
[6] "D80CF5CF-CB6E-4424-9D8F-E29F96EBD4C9^Z:WB:MY_SELECT_CD:0000^Product Delivery - DVD^1"
[7] "E0275936-FBBB-4775-97D3-9A7D19D3E1B4^Z:WB:LICENSE_MANAGER:0000^License Manager^1"
Run Code Online (Sandbox Code Playgroud)
所有元素都包含克拉(^).所以用^符号进一步分割每个元素将返回四个元素.
但我想加入所有第一个元素然后所有第二个元素然后第三个,依此类推,得到如下结果 -
[0]: 09A880C2-8732-408C-BA09-4AD6F0A65CE9, 24B11B23-1669-403F-A24D-74CE72DFD42A, 6A4A6543-DB9F-46F2-B3C9-62D69D28A0B6, 76B3B165-0BB4-4E3E-B61F-0C0292342CE2, B3C0CE51-00EE-4A0A-B208-98653E21AE11, CBA225BC-680C-4627-A4F6-BED401682816, D80CF5CF-CB6E-4424-9D8F-E29F96EBD4C9, E0275936-FBBB-4775-97D3-9A7D19D3E1B4
[1]: Z:WB:SELECT_DOWNLOAD:0000,Z:WB:TRAINING_SUBSCRIBER:0000, Z:WB:LIC_MGR_HOME_REDL:0000,Account Admin, Z:WB:1BENTLEY_ISA_ADMIN:0000, ReadOnly, Z:WB:MY_SELECT_CD:0000, Z:WB:LICENSE_MANAGER
[2]: Product Delivery - Download, Training Subscriber, License …Run Code Online (Sandbox Code Playgroud) <?xml version="1.0" encoding="UTF-8"?>
<directory>
<employee>
<name>Joe Smith</name>
<phone>4-0192</phone>
</employee>
<employee>
<name>Sally Jones</name>
<phone>4-2831</phone>
</employee>
</directory>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="directory">
<div>List of Employee<xsl:value-of select="@directory"/>
</div>
<br/>
<table>
<tr>
<td>Employee Name</td>
<td>Contact Details</td>
</tr>
<xsl:apply-templates select="employee"></xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="employee">
<tr>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="@phone"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我想本地化xslt文本:员工列表,员工姓名和联系人详细信息
如何本地化xslt文本?
这个问题可能看似重复,但这有点不同.在SO的所有其他问题中,我注意到他们注册了多条路线.但就我而言,我只有一条路线.
我正在创建asp.net webapi(框架4.5)并且在RegisterRoutes()方法中只有一个路由 -
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "DefaultApi",
url: "rest/{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
那为什么会抛出错误?
A route named 'DefaultApi' is already in the route collection. Route names must be unique. Parameter name: name
Run Code Online (Sandbox Code Playgroud) 我在这里有两个问题: -
1)两者之间的基本区别是什么 Microsoft.ServiceModel.Web.RequestInterceptor and System.ServiceModel.Dispatcher.DispatchRuntime.MessageInspectors (IdispatchMessageInterceptor)
两者似乎都是请求/消息拦截器,可用于在请求管道中实现自定义验证/拦截器.
什么时候使用另一个?
2)亦如何插件RequestInterceptor在RouteTable.Routes.Add(new ServiceRoute())
我有这样的课 -
public class AuthenticationInterceptor : RequestInterceptor
{
//Authentication logic goes here......
}
Run Code Online (Sandbox Code Playgroud)
和这样的路线定义: -
RouteTable.Routes.Add(new ServiceRoute(routePrefix, new MyServiceHostFactory(container, (sh) => {
foreach (System.ServiceModel.Dispatcher.ChannelDispatcher cd in sh.ChannelDispatchers)
{
foreach (System.ServiceModel.Dispatcher.EndpointDispatcher ed in cd.Endpoints)
{
ed.DispatchRuntime.MessageInspectors.Add(new AuthenticationInterceptor());
}
}
return sh; })));
Run Code Online (Sandbox Code Playgroud)
这是以下定义MyServiceHostFactory: -
public MyServiceHostFactory(IocContainer container, Func<ServiceHost, ServiceHost> createservicehost = null);
Run Code Online (Sandbox Code Playgroud)
现在它抛出以下错误: -
The best overloaded method match for 'System.Collections.Generic.SynchronizedCollection<System.ServiceModel.Dispatcher.IDispatchMessageInspector>.Add(System.ServiceModel.Dispatcher.IDispatchMessageInspector)' has some invalid arguments …
搜索提出了一个简单的定义:数据隐藏.
但是,请考虑以下两个示例:
1)第一个例子:
Class Employee
{
public int age;
}
Run Code Online (Sandbox Code Playgroud)
2)第二个例子:
Class Employee
{
private int age;
public int getAge(){return age;}
}
Run Code Online (Sandbox Code Playgroud)
问题:
在上述两个示例中,没有数据隐藏,age要么被其他人修改,要么被其他人查看.数据隐藏在哪里?封装如何帮助上面的例子?
我知道oracle中复制结构和数据的语句.
create table mytable1 as select * from mytable;
Run Code Online (Sandbox Code Playgroud)
但是如何在Sybase ASE中实现相同的功能呢?
到目前为止,我已经阅读了许多解释SignalR的文章.
搜索变成了一个简单的定义:SignalR可用于开发实时Web应用程序
根据维基:实时Web应用程序是一组技术和实践,使用户能够在作者发布信息后立即接收信息,而不是要求他们或他们的软件定期检查来源以获取更新.
似乎SignalR类似于观察者/发布者和订阅者模式,其中客户端订阅服务器,并且如果事件发生,则服务器将通知发送到所有客户端.
所以我的查询是:1)SignalR是否基于消息模式(即观察者/发布者和订阅者)?
2)如果是,那么为什么我们已经存在一个消息模式SignalR.
3)SignalR相对于消息模式有什么优势(观察者/发布者和订阅者)
基于基于声明的WCF Restful Services认证,我收到了大量文章和SO问题,但我使用MVC Web API开发RESTful服务(不是WCF休息服务)......
那么请您帮助我了解如何使用基于声明的身份验证来保护RESTful服务?
这就是我需要的:
现在,我一直被困在第4点.我们有RESTful服务,但需要实现WIF.
任何人都可以帮我这个.
注意:我不使用WCF Restservice,而是使用MVC Web API
c# ×7
.net ×6
asp.net ×2
wcf ×2
arrays ×1
binding ×1
hidden-field ×1
iis-7 ×1
linq ×1
localization ×1
metadata ×1
oop ×1
recycle ×1
rest ×1
signalr ×1
sybase-ase ×1
wcf-binding ×1
wcf-rest ×1
xml ×1
xslt ×1