我试图找到一种简单的方法来检测我的扩展是否安装在Firefox 3.6中.这应该从网页上完成,可能使用javascript.
我已经阅读了很多博客,说我应该尝试从我的扩展程序中加载图像.由于我拥有扩展,我可以编写代码,这似乎是一个不必要的黑客.
我还考虑过为web文档设置一个全局变量,但是我无法实现这一点.我以为我能写:
top.window.content.document.hasMyPlugin = true
但这似乎不起作用(hasMyPlugin未定义).我只访问我的域时添加了这个变量(我添加了一个WebProgressListener并检查了主机属性),因此全局命名空间污染应该不是问题.
有任何想法吗?
UPDATE
我尝试访问变量的方式很简单if(hasMyPlugin)或者if(document.hasMyPlugin)......也许我正在以错误的方式访问它?
我正在为WMSvc-IIS的Web管理服务而困扰。
我正在尝试从Visual Studio部署网站,这使我丧命。实际上,这杀死了我团队中除我以外的所有人,但是由于我现在被任命为Web服务器经理,因此我感到很伤心。
当我使用管理Windows帐户进行部署时,它可以正常工作,这至少意味着我应该在途中,但不适用于非管理员或IIS管理器帐户的其他帐户。
让我告诉你我做了什么:
已安装WMSvc。
看似配置它。在“我的服务器/管理服务”下,设置为:
Enable Remote Connections
Windows credentials or IIS Manager credentials
Access for unspecified clients - allow.
Run Code Online (Sandbox Code Playgroud)添加了用户MYUSER作为IIS管理器帐户。还添加了一个Windows帐户MYSERVER \ MYUSER
在MYSERVER /管理服务委托下添加了规则
Deploy Applications with Content - and added user *
Set Permissions - and added user *
Run Code Online (Sandbox Code Playgroud)毕竟,它可以通过我的Windows管理员帐户运行,但不能通过其他帐户运行。Visual Studio报告401未经授权。在我关注的文章中,“故障排除”下有以下引用:
用户尝试连接到网站时收到401未经授权的错误。o原因:此错误来自WMSVC,通常是用户名/密码错误,或者是因为用户无权访问网站。o解决方案:验证用户名/密码,并且用户有权访问该网站。
但老实说,我不知道我现在做错了什么。有任何想法吗?
感谢您的任何答案。
permissions iis-7 visual-studio http-status-code-401 webdeploy
我正在使用Nhibernate与SQL Server 2008.
我正在尝试执行以下代码:
var localization = session.QueryOver<T>()
.Where(idFilter).AndRestrictionOn(x => x.Language.IETFTag).IsLike(tag + "%").SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
但是,我在该行上得到一个异常,说nhibernate无法解析属性Language.IETFTag(或者那种效果).
我尝试过使用JoinQueryOver()但是它抱怨我在FROM子句中有多个相关性或类似的奇怪之处.感觉就像是在做一些非常错误的事情.我怎么能做我想做的事?
我有以下映射:
internal class LocalizationMapping : ClassMap<Localization>
{
public LocalizationMapping()
{
UseUnionSubclassForInheritanceMapping();
Id(x => x.Id).GeneratedBy.HiLo("HiLo", "NextHi", "1000");
References(x => x.Language);
}
}
internal class LanguageMapping : ClassMap<Language>
{
public LanguageMapping()
{
Id(x => x.Id);
Map(x => x.DefaultName);
Map(x => x.IETFTag);
}
}
internal class ArticleLocalizationMapping : SubclassMap<ArticleLocalization>
{
public ArticleLocalizationMapping()
{
Map(x => x.Name);
Map(x => x.Description);
References(x => x.Article);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个简单的API,它将接受许多IBehaviours,然后在配置中应用它们.我使用params关键字设计它,因为通常只需要一个行为,但有时更多.
但是,以正确的顺序应用行为非常重要.
public void Configure(string wow, params IBehaviour[] behaviours) { ... }
Configure("oh yes", new MustHappenFirst(), new MustHappenSecondly());
Run Code Online (Sandbox Code Playgroud)
做这个
技术上暗示behaviours
在枚举时以相同的顺序发生?(在标准方面,不仅仅是实际上).
在语义上和直觉上传达相同的行为?
谢谢.
当编码在功能上紧密耦合的类,但是你想要一个简单的接口到世界其他地方时,如果我可以做这样的事情,那将是很好的:
class log
{
private:
log_context& cont;
public:
create_log_section(std::string name)
{
cont.create_log_section(name);// this is fine! It's "internal"
cont.this_is_private(); // doesn't compile. Don't want anyone touching my privates!
}
};
class log_context
{
internal:
void create_log_section(std::string name);
private:
void this_is_private();
internal friend log; // Wow, possible?
}
Run Code Online (Sandbox Code Playgroud)
现在,这将允许日志访问上下文的相关部分,而不是私有部分.程序的其余部分应使用日志添加任何上下文.它也可以log_contexts在日志之间传递强类型而不需要任何额外的功率.我意识到这个特殊的解决方案是不可能的,但是有什么常见的解决方案呢?
我想知道不同的解决方案,轻松编译我的跨平台应用程序的Windows和unix.
现在我使用Ubuntu的一个makefile,但我的代码库变大之前,我想执行必要的编译它在Windows上的步骤,然后继续这样做有规律地看到,它仍然有效.
我最好不要用多个"makefile"解决方案污染我的SVN代码库,比如VC++解决方案等,我想要一种更自动的方式.我尝试使用mingw和make for windows,但似乎我的secondexpansion awesomeness在Windows版本(或类似的东西)上不起作用.它不会编译,也抱怨_winNT或类似的东西没有被定义.
我应该如何准备我的代码库以进行跨平台轻松编译?像buildtools这样的东西,也许是从makefile自动生成VS文件,或类似的东西.也许在stdinc文件中有一些预处理器魔术?
谢谢!
我想知道这样的事情是否可行:我已经覆盖了基类的属性,它是自动实现的.我在覆盖中提供了逻辑,以解决默认设置下的"缺失"属性.
现在,我想使用反射来检查是使用默认值还是某些"实际"值.换句话说,我需要检查是否base.Property为null,但是使用反射.这不起作用,它只是获取子类值(根据默认值解析,因此不为null).
var property = this.GetType().GetProperty(e.PropertyName);
if(property.GetValue(this, null) == null))
OnPropertyChanged(e.PropertyName);
Run Code Online (Sandbox Code Playgroud)
还尝试过:
var property = this.GetType().BaseType.GetProperty(e.PropertyName);
if(property.GetValue(this, null) == null))
OnPropertyChanged(e.PropertyName);
Run Code Online (Sandbox Code Playgroud)
是否可以使用反射来访问基类值?
更新:
根据评论的建议,我尝试了以下,只是为了踢.
var method1 = this.GetType().BaseType.GetMethods().First(x => x.Name.Contains(e.PropertyName));
var method = this.GetType().BaseType.GetProperty(e.PropertyName).GetGetMethod();
var methodValue = method1.Invoke(this, null);
Run Code Online (Sandbox Code Playgroud)
这两个仍然返回"派生"值,同时base.Property返回null.
我想知道是否有任何好方法以编程方式生成C#代码而不实际操作字符串或StringBuilders.此外,它应检查代码是否编译,但我想这可以使用CSharpCodeProvider完成.
我正在寻找以下内容:
CodeUnit unit = new CodeUnit();
unit.AddDefaultUsings();
unit.AddUsing("MyApi.CoolNameSpace", "MyApi.Yay");
var clazz = unit.AddClass("GeneratedClass", Access.Public);
clazz.AddConstructor("....");
if(unit.Compile() != true)
//oh dang, somethings wrong!
else unit.WriteUTF8To("GeneratedClass.cs");
Run Code Online (Sandbox Code Playgroud)
这可能是核心库的一部分(不要认为CSharpCodeProvider可以做到这一点?)或外部库,但这根本不是我的强项(使用c#动态生成代码),所以如果这看起来毫无头绪,那是因为我!
所以,我正在使用OpenGL,其中typedefs unsigned integer- > GLuint.
出于某种原因,将程序与GLuint一起使用感觉是错误的,而不是更通用的无符号整数或uint32_t.
关于忽略typedef的消极/积极方面的任何想法?
我正在尝试使用CreateFileMapping和OpenFileMapping在进程之间共享内存.这不是我想要的 - OpenFileMapping返回null而GetLastError是5 - 访问被拒绝.我有什么想法我做错了吗?名称就像MemoryTest.
编辑:
使用CreateFileMapping两次我都可以读取在其他进程中写入的数据.这是一个问题的原因是我得到错误183 - 内存区已经存在.但是,它仍然返回现有内存的句柄.
var map_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(int), name.c_str());
....
var handle = MapViewOfFile(map_handle, FILE_MAP_ALL_ACCESS , 0, 0, 0)
*handle = 10;
UnMapViewOfFile(map_handle);
getchar();
Run Code Online (Sandbox Code Playgroud)
其他过程:
var map_handle = OpenFileMapping(PAGE_READWRITE, false, name.c_str())
....
var handle = MapViewOfFile(map_handle, FILE_MAP_ALL_ACCESS , 0, 0, 0) //returns null
var out = *handle;
getchar();
Run Code Online (Sandbox Code Playgroud)
这适用于第二个过程:
var map_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(int), name.c_str());
....
var handle = MapViewOfFile(map_handle, FILE_MAP_ALL_ACCESS , 0, 0, 0) //returns null
var …Run Code Online (Sandbox Code Playgroud) 在最近的一系列问题中,我已经提出了很多关于UDP,boost :: asio和c ++的问题.
我在Stackoverflow上似乎没有答案的最新问题是:
在客户机/服务器应用程序,这是相当好的,要求服务器在防火墙中打开一个端口,这样的消息被允许在.不过,这样做同样的客户端是绝对不是一个很好的用户体验.
TCP连接通常实现这一点,因为大多数路由器支持有状态数据包检查,如果原始请求来自本地主机,则允许响应数据包通过.
我不太清楚它如何与UDP一起工作,因为UDP是无状态的,并且没有"响应数据包"(据我所知).我应该如何在我的客户端应用程序中解释这一点?
谢谢你的回答!
我慢慢地感觉到我的理智在边缘磨损,而我的思绪慢慢消失.
我想扩展XmlSerializer,由于某种原因它不支持反序列化通知.
我有以下代码:
public class NotificationXmlSerializer : XmlSerializer
{
public NotificationXmlSerializer(Type type)
: base(type)
{
}
protected override object Deserialize(XmlSerializationReader reader)
{
var x = base.Deserialize(reader);
var methods = x.GetType().GetMethods().Where(method => method.GetCustomAttributes(true).Any(attr => attr is OnDeserializedAttribute));
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
并以这种方式使用它:
using (MemoryStream fs = new MemoryStream())
{
var x = new NotificationXmlSerializer(typeof(int));
x.Serialize(fs, 5);
fs.Seek(0, SeekOrigin.Begin);
var y = x.Deserialize(fs);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在我的Deserialize覆盖中放置一个断点,它永远不会被击中!即使我故意在那里抛出异常,程序功能也是正常的,所以我相信它永远不会被击中.
为什么他们会让我覆盖一个内部方法Deserialize而不会让我影响它的任何东西?
我究竟做错了什么?
最好的问候,马克斯
c# ×5
c++ ×3
properties ×2
.net ×1
build ×1
client ×1
detection ×1
extend ×1
iis-7 ×1
javascript ×1
nhibernate ×1
opengl ×1
params ×1
permissions ×1
queryover ×1
reflection ×1
resolve ×1
router ×1
typedef ×1
udp ×1
webdeploy ×1
winapi ×1