我正在尝试以编程方式登录到Yahoo开发人员API.我遇到了一个绊脚石,我无法访问HttpWebResponse的所有"Set-Cookie"标题.
Fiddler在响应的标题中显示以下cookie:
Set-Cookie: B=733jjvp7f5g8f&b=4&d=1pFN8bVpYFYaPUme88.fc6ZzTSI-&s=kc&i=.1p3Ei3yvwqZjo0gcg7D; expires=Sun, 22-Dec-2013 05:33:04 GMT; path=/; domain=.yahoo.com
Set-Cookie: F=a=GYsABKAMvTZoTcNAPKUXrclX_Hb77EA7I_62nONz8QeEwNevHwqJ_NyizED88uhv9aMx.9o-&b=3tN5; expires=Sun, 22-Dec-2013 05:33:04 GMT; path=/; domain=.yahoo.com
Set-Cookie: Y=v=1&n=0v251rt3ifppb&l=0kii84if0h70ma/o&p=m2fvvau012000000&iz=1111&r=if&lg=en-AU&intl=au&np=1; path=/; domain=.yahoo.com
Set-Cookie: PH=fn=jW23i4lnq1UpiP.lsuU-&l=en-AU; expires=Sun, 22-Dec-2013 05:33:04 GMT; path=/; domain=.yahoo.com
Set-Cookie: T=z=QEs8OBQYTBPBEZq31nTCqv1MzNPBjUwTjcwMDZOTjY-&a=YAE&sk=DAAtoxgrYmWIMk&ks=EAA3Ha0H7qyCT8P3cI9NWJrIA--~E&d=c2wBTkRRNEFUSTNPVEEzTnpFNU9URS0BYQFZQUUBZwFCRFZQTkRSSjJQRVRDTEdFT0xCQ1hER0VVUQFvawFaVzAtAXRpcAF2MkNUVUEBenoBUUVzOE9CQTdF; path=/; domain=.yahoo.com
Set-Cookie: SSL=v=1&s=kTc532PQYAe1iT.23Q55E50ZdoOAdEK_fshc3g_YZ3SxszcbuHkmpJUAQ7RT67nDNA0nXyX68um90ZuS9RQztQ--&kv=0; path=/; domain=.yahoo.com; secure; httponly
Run Code Online (Sandbox Code Playgroud)
但是,我无法通过.NET访问"Set-Cookie"的第一个实例以外的任何内容:
// Make the web request:
var userAuthWebRequest = WebRequest.Create(uri) as HttpWebRequest;
var response = userAuthWebRequest.GetResponse() as HttpWebResponse;
// Dump the headers to debug:
Debug.WriteLine(string.Format("Set-Cookie: {0}", response.Headers.Get("Set-Cookie")));
Run Code Online (Sandbox Code Playgroud)
我的调试输出返回:
Set-Cookie: B=733jjvp7f5g8f&b=3&s=b1; expires=Sun, 22-Dec-2013 05:33:03 GMT; path=/; domain=.yahoo.com
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我向Headers.GetValues发出类似的请求,它实际上会返回"Set-Cookie"标题的两个实例,这些实例似乎已连接在一起:
foreach (var headerName …
Run Code Online (Sandbox Code Playgroud) 关于单身人士的使用,似乎有一种耻辱.我从来没有亲自接受它,但为了开放的思想,我试图尝试将IoC概念作为替代方案,因为我坦率地厌倦了我的日常工作,并希望尝试不同的东西.如果我对IoC概念的解释不正确或误导,请原谅我.
下面是这样的情况:我正在HttpListener
Windows服务中构建一个基于简单的Web服务器,它利用插件模型来确定如何根据请求的URL处理请求(就像其他人询问的那样HttpListener
).我发现插件的方法是查询配置目录以查找用a装饰的程序集HttpModuleAssemblyAttribute
.这些程序集可以包含0个或更多IHttpModule
子项,这些子项另外HttpModuleAttribute
用于指定模块的名称,版本,人类可读描述和各种其他信息.就像是:
[HttpModule(/*Some property values that matter */)]
public class SimpleHttpModule : IHttpModule
{
public void Execute(HttpListenerContext context)
{
/* Do Something Special */
}
}
Run Code Online (Sandbox Code Playgroud)
当HttpModule
发现a时,我通常会将它添加到一个Dictionary<string, Type>
对象中,该对象的唯一目的是跟踪我们所知道的模块.这本词典通常会出现在我的各种单身人士中,这种单身人士具有ACE风格的单身人士(我从C++那里学习单身人士的遗产).
现在我想要实现的是使用(我的理解)一般IoC概念类似的东西.基本上我所拥有的是一个AppService
集合,IAppService
其定义为:
public interface IAppService : IDisposable
{
void Initialize();
}
Run Code Online (Sandbox Code Playgroud)
我的插件AppService
看起来像:
[AppService("Plugins")]
internal class PluginAppService : IAppService, IDictionary<string, Type>
{
/* Common IDictionary Implementation consisting of something like: */
internal …
Run Code Online (Sandbox Code Playgroud) VS中有"安装项目".安装过程中,我启动另一个过程
System.Diagnostics.Process process = new System.Diagnostics.Process();
//fill StartInfo and run call Start()
process.Start();
Run Code Online (Sandbox Code Playgroud)
如果我在Windows 7下运行安装程序并安装"Everyone",则在SYSTEM下启动进程.如果我安装"Just for me",请在当前用户下启动流程.如何始终在当前用户下启动流程?
有没有在运行时为当前应用程序获取CLR ID的位置?我正在使用性能监视器监视我的系统,该实例使用的名称是:
ApplicationName.exe_p4952_r15_ad1
Run Code Online (Sandbox Code Playgroud)
我可以通过编程方式获取所有其他参数,但不能获取r15
执行代码的公共语言运行库(实例)的运行时ID.我注意到它总是15,但最好动态地得到它以避免并发症.
我正在寻找一种干净的方法让ChannelFactory为我创建通道,并能够在使用后处理它们.
这就是我得到的:
public class ClientFactory : IClientFactory
{
private const string endpointName = "IMyService";
private readonly ChannelFactory<IMyService> _factory;
public ClientFactory()
{
_factory = new ChannelFactory<IMyService>(endpointName);
}
public Client<IMyService> GetClient()
{
IMyService channel = _factory.CreateChannel();
return new Client<IMyService>(channel);
}
}
public class Client<T> : IDisposable
{
public T Channel { get; private set; }
public Client(T channel)
{
if (channel == null)
throw new ArgumentException("channel");
Channel = channel;
}
public void …
Run Code Online (Sandbox Code Playgroud) 我有一个类的对象,我想用它复制它dup
.其中一个实例变量是一个数组,它似乎引用了它.我以为dup实际上创造了一个DUPLICATE.
这是我的IRB会议:
irb(main):094:0> class G
irb(main):095:1> attr_accessor :iv
irb(main):096:1> def initialize
irb(main):097:2> @iv = [1,2,3]
irb(main):098:2> end
irb(main):099:1> end
=> nil
irb(main):100:0> a=G.new
=> #<G:0x27331f8 @iv=[1, 2, 3]>
irb(main):101:0> b=a.dup
=> #<G:0x20e4730 @iv=[1, 2, 3]>
irb(main):103:0> b.iv<<4
=> [1, 2, 3, 4]
irb(main):104:0> a
=> #<G:0x27331f8 @iv=[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我希望a
不会改变,因为dup
创建一个全新的变量,而不是引用.
另请注意,如果[1,2,3]
要用标量替换G::initialize
,dup
则不会引用它.
我正在使用Visual Developer 2010,MVC 3,c#.我正在尝试将XML解析为这样的iTextSharp文档:
ITextHandler textHandler = new ITextHandler(doc);
textHandler.Parse(xmldoc);
Run Code Online (Sandbox Code Playgroud)
错误消息显示ITextHandler不在此上下文中.我怎样才能做到这一点?或者是否有另一个构造函数可以执行相同的操作?
这是我的using语句列表:
using System;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Xml;
using iTextSharp.text;
using iTextSharp.text.xml;
using iTextSharp.text.pdf;
Run Code Online (Sandbox Code Playgroud)
除了ITextHandler行之外,其他所有内容似乎都能正确编译.请帮忙.
我刚刚开始深入研究Metro Style应用程序开发,我意识到当我查看应用程序的属性时,没有针对性的框架.
那么,我可以在WinRT Metro Stype Applications for Windows 8上使用我现有的.Net 4.0类库(或以前的类库)吗?
例如,我想得到Autofac
并使用它,但我不确定它是否合适.
编辑
我认为它实际上是针对.Net Framework Core 4.5.
我在找到如何在C#中取消此任务时遇到了一些问题.我对处理线程没有很强的理解,我尝试使用谷歌搜索一些简单的代码示例来帮助我,但我真的没有在哪里.这是我正在处理的一段代码:
var tasks = urls.Select(url => Task.Factory.StartNew(
state =>
{
using (var client = new WebClient())
{
lock (this)
{
// code to download stuff from URL
}
}
}, url)).ToArray();
try
{
Task.WaitAll(tasks);
}
catch (Exception e)
{
textBox2.AppendText("Error: " + e.ToString());
}
Run Code Online (Sandbox Code Playgroud)
其中"urls"是一个URL数组.是否有一种简单的方法可以使我在单击程序中的按钮时完全停止下载URL?另外,我粘贴的代码片段在backgroundWorker1调用的函数中,我想这可能会使事情变得复杂一些.(我有一个backgroundWorker的原因是UI在下载URL时没有锁定.)
如果这有点令人困惑,这里是我试图用我的代码实现的概述:
提前致谢.
来自以下文件File.Move
:
请注意,如果您尝试通过将同名文件移动到该目录来替换文件,则会出现IOException.您不能使用Move方法覆盖现有文件.
简而言之,你不能覆盖Move
,所以为了方便覆盖Move,我通过做一个File.Copy
后面的模仿行为File.Delete
.就像是:
if (File.Exists(dstFileName))
{
// System.IO.File.Move cannot be used to overwrite existing files, so we're going
// to simulate that behavior with a Copy & Delete.
File.Copy(procContext.FileName, dstFileName);
File.Delete(procContext.FileName);
}
else
File.Move(procContext.FileName, dstFileName);
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否有任何我需要防范的情况可能会导致源文件被删除而不首先被成功复制?
我从阅读文档中得到的理解是,因为File.Copy
它不会返回任何在它不成功的情况下应该抛出异常的东西.有没有人遇到过任何不真实的情况?
c# ×9
.net ×3
asynchronous ×1
clr ×1
copy ×1
dup ×1
file ×1
itextsharp ×1
multitasking ×1
ruby ×1
singleton ×1
task ×1
wcf ×1
windows-8 ×1
winforms ×1