我正在写一个C#网络库(主要是作为一个学习练习,如果有人真的最终使用它,那对我来说并不重要,因为我确信解决方案已经存在).
到目前为止,我对我的结构非常满意......我有几层客户端/服务器可用,可以通过套接字以原始字节进行通信,或者通过序列化消息对象稍微复杂一些.
我遇到的问题(问题?)是的时候正是我要声明的方法,属性或事件sealed,virtual或没有限定符.
我知道所有这些都做了什么 - sealed阻止了类的继承,或者进一步覆盖了一个方法.virtual将通过方法覆盖允许多态行为.
但是,由于我正在设计一个类库,所以我不确定何时使用它们.这是一个可扩展性的问题,我认为......我提供了一些接口,一个或两个抽象类,以及我的库的消费者使用或扩展的一些具体实现,但是我很难确定何时它是一个"好主意"明确禁止派生类或允许覆盖功能.
在设计我的类以供其他人使用时,请记住哪些一般指示或建议?
我知道在正常的php正则表达式(ASCII模式)中,"\ w"(单词)表示"字母,数字和_".但是当你使用带有"u"修饰符的多字节正则表达式时,它意味着什么?
preg_replace('/\W/u', '', $string);
Run Code Online (Sandbox Code Playgroud) 跨站点请求伪造是否可以对抗无状态RESTful服务?
我不是在谈论伪REST,服务器会记住你是通过cookie登录的.我说的是没有cookie的纯无应用程序状态的服务器REST.
我正在使用SSL和基本身份验证.对于每个请求,该Authorization标头必须在那里.尽管在SSL级别存在某种会话,但JSP意义上没有"会话".
因此,我们假设我正在查看发出Ajax请求的合法网页,并且我会以某种方式转到同一选项卡或不同选项卡中的不同页面,并且该页面发出相同的Ajax请求.(我假设合法网页上没有恶意代码;这完全是另一回事,在这种情况下一切皆有可能.)
当第二个页面发出Ajax请求时,浏览器是否会放置相同的Authorization标头?也就是说,浏览器会说"哦,你想再去那里?嘿,我碰巧还有钥匙!"?
此外,恶意脚本无法执行xhr请求,然后在回调中从ioargs获取请求,获取Authorization标头并取消Base64的名称和密码?
让我们说在我的sql语句中我想做:
WHERE numberOfCookies >= 10
Run Code Online (Sandbox Code Playgroud)
我如何在iBatis中执行此操作?
在分析域对象的生命周期时,聚合是对象分组的基本元素.我在C#中实现aggregetes时遇到问题.
一个简短的例子,有几个类,会非常有帮助.或者这个主题的任何链接.
非常简单.
>>> import socket
>>> socket.gethostbyname('http://yahoo.com')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
socket.gaierror: [Errno -2] Name or service not known
Run Code Online (Sandbox Code Playgroud) 我在Java中有一个整数数组,初始化如下:
public int MyNumbers[] = {0,0,0,0};
Run Code Online (Sandbox Code Playgroud)
但是,我想将数组初始化为可变长度的零.
private int number_of_elements = 4;
public int MyNumbers[] = {0} * number_of_elements; // ????
Run Code Online (Sandbox Code Playgroud)
我不知道怎么做这个来自C的Java新手.有什么建议吗?
编辑
我知道我可以使用for循环,但我希望有一个简单的方法来做到这一点.
我有一个带有img的h4就像这样.我将点击功能绑定到h4.这很好用.但是我无法在其中选择img.我想选择img以便用.attr("src")重放src attr.replace("up","down"); .
<h4 class="collapsable_head">
<img id="up_down" class="icon" src="/crm/img/modifier_down.gif" alt="link"/>
<b>Classification Filter:</b>
</h4>
Run Code Online (Sandbox Code Playgroud)
javascript:
$(".collapsable_head").click(function(){
$(this).next(".collapsable_body").slideToggle(500)
//None of the next lines return me the img object
src = jQuery(this).children('img').attr("src");
print(src);
src = $(this).next("#up_down").attr("src");
print(src);
src = $(this).next("#up_down").attr("src");
print(src);
return false;
});
Run Code Online (Sandbox Code Playgroud)
我想使用关键字"this",因为我有更多(".collapsable_head")在那里;-)
我希望能够定义一些对象并将一些"行为"附加到该对象,其中实现不在对象中.Rails-like:acts_as_taggable.作为一个具体的例子,我想说任务可以标记.我不想在任务中编写任何代码,除了通过......界面"启用"行为之外?这就是我的问题.您不能将实现放在接口中.我不想用所有可能的实现污染我的BaseObject [abstract?]类.
对象:任务,注意
行为:Taggable,Emailable,Printable,Deferrable(
任务可以被标记,通过电子邮件发送,打印和推迟.注释可以被标记,通过电子邮件发送,打印,但不能延期.
baseobject
public class BaseObject
{
Guid ID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
tag.cs
public class Tag : BaseObject
{
public Guid Id { get; set; }
public String Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
itaggable.cs
public interface ITaggable
{
void AddTag(Tag tag);
... other Tag methods ...
}
Run Code Online (Sandbox Code Playgroud)
task.cs
public class Task : BaseObject, ITaggable, IEmailable, IPrintable
{
Task specified functionality... nothing about "taggging"
}
Run Code Online (Sandbox Code Playgroud)
note.cs
...
TagCollection.cs
public class TagCollection …Run Code Online (Sandbox Code Playgroud) 这是我的代码,用于检查SharePoint站点是否存在.
string URL = Console.ReadLine();
using (SPSite objSite = new SPSite(URL))
{
using (SPWeb objWeb = objSite.OpenWeb())
{
Console.WriteLine(string.Format("Site Exists: {0}", objWeb.Exists.ToString()));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不起作用.即使站点/子站点不存在,"Exists"属性也始终返回true.当URL为" http:// intranet "或" http:// intranet/sitedoesnotexists " 时,我得到相同的结果.
我是以正确的方式使用它吗?
谢谢
编辑
抱歉格式化,我确信我应用了它,但我想我忘记了.