我知道如何在C#中创建COM DLL(类库).是否可以使用C#创建COM Surrogate EXE?
这将是一个独立的服务器,能够启动和托管COM对象,然后COM客户端可以访问它们.
如果是这样,为什么?什么构成"长跑"?
在属性访问器中做魔术似乎是我作为类设计师的特权.我一直认为这就是为什么C#的设计师把那些东西放在那里 - 所以我可以做我想要的.
当然,最好的做法是尽量减少类的用户的意外,因此在一种方法中嵌入真正长时间运行的东西 - 例如,10分钟的蒙特卡罗分析 - 是有道理的.
但是假设一个prop访问器需要db读取.我已经打开了数据库连接.在正常的期望中,db访问代码是否可以在属性访问器中"接受"?
我在我的cc模式缓冲区中使用hideshow.el来折叠我不看的文件的部分.
能够在XML文档中执行此操作会很高兴.我使用emacs 22.2.1和内置的sgml-mode进行xml编辑.我还没有使用hideshow来处理XML.我的意思是,我打开次要模式但按键没有效果.哦,除了我确实得到了一个XML评论崩溃.但没有元素.
有人做过这个吗?
建议?
编辑:我敢打赌,如果我将一个sgml-mode元素添加到hs-special-modes-alist中,它会起作用.我需要一个用于start-block的正则表达式.有没有人这样做过?
我没有转移到nxml模式.我是不是该?它会"折叠"还是隐藏?
在C#中,我可以使用XML Documentation Comments直接在代码中附加属性,方法,事件等文档.
我知道如何插入对特定方法的引用:
<see cref="MethodName(TypeForArg1, TypeForArg2..)"/>
Run Code Online (Sandbox Code Playgroud)
有没有办法插入方法组的引用?我有多个相同方法名称的重载...
我试过了
<see cref="M:MethodName"/>
Run Code Online (Sandbox Code Playgroud)
..但那没用.
编辑: BUMP
我不知道RC脚本.
我想将产品版本,文件版本等元数据包含到我正在构建的DLL中.我正在使用.rc文件来做到这一点.构建是由makefile驱动的.我跟着我发现的.rc scrpit示例.
模板.rc文件包含afxres.h,但我认为我不需要.但是,如果我删除它,我会收到一堆编译错误.
基本的非MFC RC脚本是什么样的?我可以删除所有这样的东西:
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
....
Run Code Online (Sandbox Code Playgroud) 如今,赋予实用程序应用程序"自动更新"功能似乎是基本的好方法.
我正在考虑像Reflector或Paint.NET这样的应用程序,主动告诉你"嘿,有一个更新的版本可用.想下载吗?"
问:是否有人知道可以由来自Codeplex项目的应用程序使用的通用框架,如果有更新版本,则提醒用户,并可选择直接从CodePlex下载并安装新版本?
显然有ClickOnce和Updater Block,我自己编写了实用程序类,用于winforms和WPF,其他人也编写了类似的东西,但所有这些都要求app发布者在Codeplex之外发布应用程序,命令自动更新工作.我想象的是直接从codeplex下载的东西.
编辑
我可以想象这样一个框架可能会强加一个关于如何将应用程序发布到codeplex的结构.它可能需要与每个版本一起发布"manifest.xml",并且该清单文件内部可能是应用程序版本,时间戳,发行版的注释,最新二进制下载的URL等等.
似乎有人会已经建立了这个.
在.NET中,我认为我可以通过调用System.IO.File.GetAttributes()并检查ReparsePoint位来确定文件是否是符号链接.像这样:
var a = System.IO.File.GetAttributes(fileName);
if ((a & FileAttributes.ReparsePoint) != 0)
{
// it's a symlink
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如何获得符号链接的目标?
ps:我知道如何创建符号链接.它需要P/Invoke:
[Interop.DllImport("kernel32.dll", EntryPoint="CreateSymbolicLinkW", CharSet=Interop.CharSet.Unicode)]
public static extern int CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, int dwFlags);
Run Code Online (Sandbox Code Playgroud) 我认为只有一个 - 包含在jQuery UI中并在此处记录.
我知道有第三方自动完成小部件可以插入到jQuery中,就像来自devbridge的小部件一样.但我会将其描述为jQuery的自动完成小部件,而不是jQuery自动完成小部件.
但是在Stackoverflow上,我看到有关自动完成小部件不会使用jQuery UI文档中描述的语法的问题.例如:
jQuery UI语法如下所示:
$("#input1").autocomplete({
source: function(req, responseFn) {
...
},
select: function(value, data){
...
}
});
Run Code Online (Sandbox Code Playgroud)
其中一些其他问题的语法如下:
$("#city").autocomplete("CUList.asmx/GetCUList", {
dataType: 'jsonp',
parse: function(data)
{
var rows = new Array();
for(var i=0; i<data.length; i++){
rows[i] = { data:data[i], value:data[i].CUName, result:data[i].CUName };
}
return rows;
},
formatItem: function(row, i, n) {
return row.CUName + ', ' + row.CUCity;
},
max: …Run Code Online (Sandbox Code Playgroud) 我甚至不知道这个lisp语法的正确术语,所以我不知道我用来问这个问题的词是否有意义.但这个问题很有道理,我敢肯定.
所以,让我告诉你.cc-mode(cc-fonts.el)有一些称为"匹配器"的东西,它们是用来决定如何形成代码区域的代码.这听起来很简单,但匹配器代码的形式我并不完全理解,带有反引号和逗号,只有逗号等等,而且它嵌入在c-lang-defcost中,它本身就是一个宏.我不知道该怎么称呼它,但我想在该代码上运行edebug.
看:
(c-lang-defconst c-basic-matchers-after
"Font lock matchers for various things that should be fontified after
generic casts and declarations are fontified. Used on level 2 and
higher."
t `(;; Fontify the identifiers inside enum lists. (The enum type
;; name is handled by `c-simple-decl-matchers' or
;; `c-complex-decl-matchers' below.
,@(when (c-lang-const c-brace-id-list-kwds)
`((,(c-make-font-lock-search-function
(concat
"\\<\\("
(c-make-keywords-re nil (c-lang-const c-brace-id-list-kwds))
"\\)\\>"
;; Disallow various common punctuation chars that can't come
;; before the '{' of the enum list, to avoid searching …Run Code Online (Sandbox Code Playgroud) 我有一个脚本CustomAction(是的,我知道所有关于不使用脚本CustomActions的意见.我有不同的意见.)
我想运行一个命令,并捕获输出.我可以使用WScript.Shell COM对象,然后调用shell.Exec().但是,这会为执行的命令闪烁一个可见的控制台窗口.
为了避免这种情况,我知道我可以使用该shell.Run()调用,并为窗口外观指定"隐藏".但是.Run()不允许我访问已执行进程的StdOut,这意味着我需要创建一个临时文件并将exe输出重定向到临时文件,然后在脚本中读取该临时文件.
一些问题:
这会起作用吗?
如何为临时文件生成名称?在.NET中我可以在System.IO命名空间中使用静态方法,但我在这里使用脚本.我需要确保使用RW访问权限,并且没有反病毒程序会对此产生影响.
好主意?我正在努力避免使用C/C++.
如果有一种方法可以从脚本中查询IIS7中的网站,而不使用IIS6兼容包,而不使用.NET(Microsoft.Web.Administration.ServerManager),并且不执行进程(appcmd list sites),我可以避免所有这些.我已经就该主题提出了另一个问题 ; 对此的任何建议也将不胜感激.
.net ×4
c# ×4
emacs ×2
afx ×1
auto-update ×1
autocomplete ×1
class-design ×1
codeplex ×1
com ×1
iis-7 ×1
javascript ×1
jquery ×1
jquery-ui ×1
lisp ×1
ntfs ×1
properties ×1
rc.exe ×1
resources ×1
symlink ×1
vb.net ×1
versioninfo ×1
windows ×1
wix ×1
xml ×1