如何在Web服务中检测用户代理?我的Web服务是使用带有basicHTTPBinding的WCF Web服务实现的.它将是一些SOAP客户端的帖子.我希望了解客户的用户代理.
我想看一些示例代码.
我正在使用基于WCF的Web服务,在svc.cs中,我试图捕获this.Context.Request.UserAgent.但它给出了以下错误:
this.Context.Request.UserAgent 'MySoapService.MyService' does not contain a definition for 'Context' and no extension method 'Context' accepting a first argument of type 'MySoapService.MyService' could be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
我也试过System.Web.HttpContext.Current.Request.UserAgent,它说:
'System.Web.HttpContext.Current' is null
Run Code Online (Sandbox Code Playgroud)
编辑说明:
我试图激活ASP.NET兼容模式.我<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />在配置文件中添加并添加[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 到实现服务接口的类的顶部.然后使用System.Web.HttpContext.Current.Request.UserAgent根据需要为我提供用户代理.
我想让tablelayout包含几个tablerows.其中一行包含4个按钮,而第二行包含非常长的文本.但是,按钮的宽度会随着第二行中的文本而延伸.反正有没有阻止这个?
alt text http://i40.tinypic.com/34srli0.jpg alt text http://i44.tinypic.com/2505dmf.jpg
http://img684.imageshack.us/i/tableview1.jpg/
http://img521.imageshack.us/i/tableview2.jpg/
这是我的xml文件:(不知何故,这个网站对xml文件不友好)
AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
TableLayout
android:id="@+id/widget28"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="0px"
android:layout_y="10px"
>
TableRow
android:id="@+id/widget29"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
Button
android:id="@+id/widget30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
>
</Button>
Button
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
>
</Button>
Button
android:id="@+id/widget32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
>
</Button>
Button
android:id="@+id/widget33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
>
</Button>
</TableRow>
TableRow
android:id="@+id/widget35"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
TextView
android:id="@+id/widget40"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextViewTextViewTextViewTextViewTextViewTextView"
>
</TextView>
</TableRow>
</TableLayout>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud) 我们从主干创建了一个分支,在主干上进行了重大的重构.同时,主干进行了一些修改,并进行了一些修复.我们不希望在分支上进行这些更改,因此我们不希望"追赶"将主干合并到分支,因为我们不希望混合旧代码和新代码.但如果没有这个,我就无法将分支重新整合回主干.
有没有办法将树枝"按原样"强行放在树干上?
(我考虑的一个想法是撤销("反向合并")主干回到分支开始的修订版,然后将它合并到分支上是安全的 - 什么都不应该发生.然后我可以重新集成.你怎么看? ?)
我有遗留代码(我没写它)总是包含编码属性,但重新编译到D2010,TXMLDocument不再包含编码.由于XML数据在标记和数据上都有重音字符,因此TXMLDocument.LoadFromFile只会抛出EDOMParseErros,表示在文件中找到了无效字符.相关代码:
Doc := TXMLDocument.Create(nil);
try
Doc.Active := True;
Doc.Encoding := XMLEncoding;
RootNode := Doc.CreateElement('Test', '');
Doc.DocumentElement := RootNode;
<snip>
//Result := Doc.XMl.Text;
Doc.SaveToXML(Result); // Both lines gives the same result
Run Code Online (Sandbox Code Playgroud)
在旧版本的Delphi中,生成以下行:
<?xml version="1.0" encoding="ISO-8859-1"?>
Run Code Online (Sandbox Code Playgroud)
在D2010上,生成:
<?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)
如果我手动更改线路,所有工作都像过去几年一直工作.
更新:XMLEncoding是一个常量,定义如下
XMLEncoding = 'ISO-8859-1';
Run Code Online (Sandbox Code Playgroud) 在我的业务领域 - 金融机构的后台IT - 软件组件通常进行全局配置,记录其进度,进行某种错误处理/计算短路是很常见的...可以通过Haskell中的Reader-,Writer-,Maybe-monads等很好地建模,并与monad变换器一起组合.
但似乎存在一些缺点:monad变换器背后的概念非常棘手且难以理解,monad变换器导致非常复杂的类型签名,并且它们会造成一些性能损失.
所以我想知道:monad变形金刚在处理上述常见任务时是最佳做法吗?
我希望任何用户都能够将自己的名字提交给志愿者表单,但只有管理员才能查看任何其他URL.不幸的是,我似乎无法弄清楚这一点.我的resources.xml如下;
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<http realm = "BumBumTrain Personnel list requires you to login" auto-config="true" use-expressions="true">
<http-basic/>
<intercept-url pattern="/person/volunteer*" access=""/>
<intercept-url pattern="/**" access="isAuthenticated()" />
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Run Code Online (Sandbox Code Playgroud)
具体来说,我正在尝试实现我所描述的访问设置;
<intercept-url pattern="/person/volunteer*" access=""/>
<intercept-url pattern="/**" access="isAuthenticated()" />
Run Code Online (Sandbox Code Playgroud)
有人可以描述如何使用intercept-url来实现我所描述的结果吗?
谢谢
GAV
无论出于什么原因,我需要一个grails应用程序;
<intercept-url pattern="/person/volunteer/**" access="" filters="none"/>
<intercept-url pattern="/images/**" access="" filters="none"/>
<intercept-url pattern="/css/**" access="" filters="none"/>
<intercept-url pattern="/js/**" access="" filters="none"/>
<intercept-url pattern="/**" access="ROLE_ADMIN" />
Run Code Online (Sandbox Code Playgroud)
要使其工作,请注意第一条规则的不同之处.
这是我的情况.我打开了一堆vim进程.而不是一个接一个地保存/相当(:x!)我想向所有进程发送一个信号 - 比如USR1 - 而不是让它创建一个恢复.swp文件,我希望它保存文件并正常退出.
可能?
我是clojure的新手,我正在尝试理解如何正确使用它的并发功能,所以任何批评/建议都值得赞赏.所以我试图在clojure中编写一个小测试程序,其工作方式如下:
以下是我对上述每个步骤的计划:
我有一个组件,需要根据它收到的输入调用特定的服务.因此,我的组件必须查看输入并基于一个配置,该配置说"对于此输入调用,此服务与此数据"需要调用正确的服务.这些服务具有共同的签名方法和特定的签名方法(每个).
我想到了一个包含所有三种方法签名的抽象类.这两个服务的实现将覆盖所有三种方法(抛出NotImplementedException当前服务不支持的方法).可以使用map初始化的组件(每个输入类型将具有要调用的服务的类型)也将被定义.
你有更好的方法来应对这种情况吗?
我有一个GUI,它使用另一个回调中弹出菜单的选择.有没有办法只在一行中返回弹出菜单的选定值而不创建任何临时变量?我已经尝试了几种解决方案,但我只使用一个临时变量管理了两行:
三行:
list=get(handles.popupmenu1,'String');
val=get(handles.popupmenu1,'Value');
str=list{val};
Run Code Online (Sandbox Code Playgroud)
两行:
temp=get(handles.popupmenu1,{'String','Value'});
str=temp{1}{temp{2}};
Run Code Online (Sandbox Code Playgroud)
任何人都可以把它剃成一个吗?
PS,这是一个动态菜单,所以我不能只使用get(handles.popupmenu1,'Value')和忽略字符串组件.
android ×1
branch ×1
c# ×1
clojure ×1
delphi ×1
delphi-2010 ×1
encoding ×1
factory ×1
haskell ×1
matlab ×1
merge ×1
monads ×1
popupmenu ×1
svn ×1
tablelayout ×1
tablerow ×1
txmldocument ×1
unix ×1
user-agent ×1
view ×1
vim ×1
wcf ×1
web-services ×1
xml ×1