如何在控制台应用程序中创建,执行和控制winform?
我一直绊倒printf()函数系列的格式说明符.我想要的是能够在小数点后打印一个最大给定位数的double(或float).如果我使用:
printf("%1.3f", 359.01335);
printf("%1.3f", 359.00999);
Run Code Online (Sandbox Code Playgroud)
我明白了
359.013
359.010
Run Code Online (Sandbox Code Playgroud)
而不是期望的
359.013
359.01
Run Code Online (Sandbox Code Playgroud)
有谁能够帮我?
我想使用Linq2XML将一些节点附加到xml文档.有问题的文件正由其他进程使用,他们应该能够在我更新文件时读取该文件.所以我提出了这个解决方案,这显然不是正确的方法(方法doc.Save()失败并说另一个进程正在使用该文件):
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
doc = XDocument.Load(new StreamReader(fs));
doc.Root.Add(entry);
doc.Save(filename);
fs.Close();
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常有用.
有没有办法创建C#对象并从非托管C++调用方法,但没有使用COM Iterop?我正在寻找像JNI(但对于.Net)这样的东西,你可以手动创建VM,创建对象等.
Microsoft的新F#编程语言提供了功能编程(一流的词法闭包和尾调用)与高效的并发垃圾收集器的强大组合,可以轻松利用多核.
OCaml,Haskell,Erlang以及我所知道的所有免费的Lisp和Scheme实现没有并发GC.Scala和Clojure有一个并发GC但没有尾调用.
因此似乎没有结合这些功能的开源编程语言.那是对的吗?
我有两个围绕Microsoft Office的包装器,一个用于2003,一个用于2007.由于有两个版本的Microsoft Office并行运行"不正式",也没有Microsoft推荐,我们有两个盒子,一个用Office 2003,另一个用Office 2003使用Office 2007.我们分别编译包装器.DLL包含在我们的解决方案中,每个框都有相同的结帐但Office 2003或2007"卸载",因此它不会尝试编译该特定的DLL.由于Office COM DLL不可用,如果不这样做将导致编译错误.
我们使用.NET 2.0和Visual Studio 2008.
由于Microsoft在2007年神秘地改变了Office 2003 API,重命名和更改了一些方法(叹气)从而使它们不向后兼容,我们需要两个包装器.我们为每台构建机器提供了解决方案,并激活了一个Office DLL.例如:具有Office 2003的计算机已卸载"Office 2007"DLL,因此无法对其进行编译.另一个盒子是相同的想法,但反过来.这一切都是因为我们不能在同一个盒子中有2个不同的Office用于编程.(根据微软,你可以在技术上将两个Office放在一起),但不能用于编程,也不能没有一些问题.
当我们改变了应用程序版本(从1.5.0.1至1.5.0.2为例),我们需要重新编译DLL相匹配的应用程序的新版本,这是自动完成的,因为Office包装包含在解决方案.由于包装器包含在解决方案中,因此它们继承了APP版本,但我们必须执行两次,然后将另一个DLL"复制"到创建安装程序的计算机上.(痛苦......)
是否可以编译一个可以与任何版本的应用程序一起使用的DLL ,尽管它"更老"?我已经阅读了一些关于清单的内容,但我从未与这些内容进行过互动.任何指针将不胜感激.
秘密原因是,我们没有在"时代"改变了我们的包装和也没有微软与他们的古老的API,但我们正在重新编译DLL以匹配应用程序版本,每一个我们做的释放.我想自动化这个过程,而不是依赖两台机器.
我无法从项目中删除DLL(它们都没有),因为存在依赖项.
我可以创建第三个"主包装器"但尚未考虑过它.
有任何想法吗?有其他要求相同的人吗?
澄清:
我有一个N项目的解决方案.
"应用程序"+ Office11Wrapper.dll + Office12Wrapper.dll.
两个"包装器"都使用应用程序的依赖关系+解决方案中的其他库(数据层,业务层,框架等)
每个包装器都有相应Office包的引用(2003和2007).
如果我编译并且没有安装office 12,我会从Office12Wrapper.dll中找不到Office 2007库的错误.所以我拥有两台构建机器,一台使用Office 2003,一台使用Office 2007.在每台机器上进行完整的SVN更新+编译之后,我们只需在"安装程序"中使用office12.dll就可以将编译器编译为"相同"代码,相同版本".
注意:Office 2007 Build Machine,Office 2003的Wrapper"已卸载",反之亦然.
提前致谢.
是否可以从 ActionExecutingContext 对象获取原始端口?如果是这样,怎么办?
在我正在编写的一个C#中,我需要以相同的方式处理具有相同签名的多个方法.此外,将来可能会有更多这些方法.我没有反复重复同样的逻辑,而是想到了以下几点:
private delegate bool cleanStep(BuildData bd, out String strFailure);
List<cleanStep> steps = new List<cleanStep>();
steps.Add(WriteReadme);
steps.Add(DeleteFiles);
steps.Add(TFSHelper.DeleteLabel);
steps.Add(TFSHelper.DeleteBuild);
List<cleanStep>.Enumerator enumerator = steps.GetEnumerator();
bool result = true;
while (result && enumerator.MoveNext())
{
result = enumerator.Current.Invoke(build, out strFailure);
if (!result)
{
logger.Write(LogTypes.Error, strFailure);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这有一些很好的功能,但它也有点过于引擎和混淆.
你能感谢一个更好的方法吗?
BTW:
谢谢.
我有一个WCF服务,托管在IIS 7.0中,需要运行数据库查询.为了获得正确的权限,我在服务中模仿如下:
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
public void MyOperation(int arg)
Run Code Online (Sandbox Code Playgroud)
<behavior name="ReceivingServiceBehavior">
<!-- Other behaviors -->
<serviceAuthorization impersonateCallerForAllOperations="true" />
</behavior>
Run Code Online (Sandbox Code Playgroud)
当我尝试连接并运行我的查询时,我得到以下内容:
Exception - System.IO.FileLoadException: Could not load file or assembly 'System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Either a required impersonation level was not provided, or the provided impersonation level is invalid. (Exception from HRESULT: 0x80070542) File name: 'System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' ---> System.Runtime.InteropServices.COMException (0x80070542): Either a required impersonation level was not provided, or the provided impersonation …
我需要检查RequestType的HttpRequest在ASP.NET(或WebRequest.Method).我知道我可以使用字符串值" POST"或" GET"作为请求类型,但我可以发誓在.NET中包含值的某个类中有一个常量.
出于好奇,我想知道是否有人知道这些字符串常量是哪一个阶级GET和POST人.我已经试过在网上搜索,但我没有运气,所以我认为我会问这里.
c# ×7
.net ×5
asp.net ×1
asp.net-mvc ×1
c ×1
c++ ×1
com ×1
concurrency ×1
delegates ×1
dll ×1
filestream ×1
interop ×1
linq-to-xml ×1
logging ×1
printf ×1
security ×1
sql-server ×1
tail-call ×1
transactions ×1
version ×1
wcf ×1
winforms ×1