我已经构建了一个Windows C++应用程序,我想将其移植到linux.这样做的主要原因是我们的IT员工可以轻松进行系统维护.除了运行此应用程序的一台Windows机器,我们只是一个Linux操作.
此应用程序构建在 - 并且在Windows上运行的原因是它使用Windows API(DLL和标头)连接到属于外部方的服务器.这个连接使用了一些我不想搞砸的专有协议,(我认为我不允许合同)所以我坚持使用.dll.
这个dll只是windows,因为(我怀疑)dll中的windows套接字特定代码.除此之外,它没有做很多先进的东西.有没有办法在WINE上运行Linux上的应用程序并嗅出协议并自己重新实现DLL,这将允许我让这个应用程序在Linux机器上运行?
嘿,我目前有一个我的Android应用程序的问题.我通过实现Excecutor接口启动了一个额外的线程:
class Flasher implements Executor {
Thread t;
public void execute(Runnable r) {
t = new Thread(r){
};
t.start();
}
}
Run Code Online (Sandbox Code Playgroud)
我像这样开始我的Runnable:
flasherThread.execute(flashRunnable);
Run Code Online (Sandbox Code Playgroud)
但是我怎么能阻止它呢?
我的asp.net mvc web应用程序中有以下方法,以检查ip地址是否已经存在: -
public bool ISTMSIPUnique(string ip, int? id=0)
{
var technology = FindTechnology(id.Value);
var result = tms.TechnologyIPs.Where(a.IPAddress.ToUpper() == ip.ToUpper());
return (result.Count() == 0);
}
Run Code Online (Sandbox Code Playgroud)
但我注意到a.IPAddress.ToUpper() == ip.ToUpper()会做以下事情: -
那么这背后的规则是什么?我应该总是修剪()字符串,然后将其保存到SQL Server DB以克服此问题,因为IP地址不能包含空格吗?
我的.Net 4.0 ToolStripMenuItem标题有一个小问题.
我希望它强调项目文本中的快捷方式(访问)关键字母.
我在项目文本字段中使用了&符号:'&New map',它在编辑器中看起来很好:

但是,当我构建应用程序时,下划线消失:

有谁知道它为什么会发生以及如何在构建的表单中制作强调显示?
我有一个设备型号:
public class DeviceModel
{
public DateTime Added { get;set; }
}
Run Code Online (Sandbox Code Playgroud)
我想选择按Added日期分组的设备数量(不是日期和时间,而只是日期).我当前的实现无效,因为linq无法转换DateTime.Date为sql:
var result = (
from device in DevicesRepository.GetAll()
group device by new { Date = device.Added.Date } into g
select new
{
Date = g.Key.Date,
Count = g.Count()
}
).OrderBy(nda => nda.Date);
Run Code Online (Sandbox Code Playgroud)
如何更改此查询以使其工作?
我正在尝试将用户名和密码传递到以下 URL:
https://maxcvservices.dnb.com/rest/Authentication
Run Code Online (Sandbox Code Playgroud)
根据文档,user_id 和密码必须作为标头传递,并分别带有键:x-dnb-user、x-dnb-pwd。
到目前为止,我有以下代码似乎可以工作,但我无法检索响应对象返回的身份验证令牌:
public static void Main (string[] args)
{
var client = new RestClient ("https://maxcvservices.dnb.com/rest/Authentication");
var request = new RestRequest (Method.POST);
request.AddHeader("x-dnb-user", myEmail);
request.AddHeader("x-dnb-pwd", myPassword);
IRestResponse resp = client.Execute(request);
var content = resp.Content;
Console.WriteLine (resp.StatusDescription);
Console.WriteLine (resp.StatusCode);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试打印内容时,我得到一个空行,但我实际上期望的是服务返回的身份验证令牌。我认为我在代码中做的几件事(但不确定)是将用户 ID 和密码作为 POST 请求中的标头传递,这是所需的。该令牌作为响应对象中“授权”字段的值返回。我想知道如何打印令牌。另外,statusDescription、statusCode 都打印 OK,这告诉我我有正确的请求,但无法在响应中找到身份验证令牌。如果能指导我如何访问返回的 POST 响应的授权字段中的身份验证令牌,我们将不胜感激。
这个问题出现在我试图找出一个更大的问题时,为了简单起见,我忽略了.
我必须在C#中表示某个数据结构.它是一个用于与外部系统通信的协议.因此,它具有一系列具有预定义长度和整数(或其他更复杂数据)的字符串.我们假设:
SYSTEM : four chars
APPLICATION : eight chars
ID : four-byte integer
Run Code Online (Sandbox Code Playgroud)
现在,我表示这个的首选方法是使用字符串,所以
class Message
{
string System {get; set; }; // four characters only!
string Application {get; set; }; // eight chars
int Id {get; set; };
}
Run Code Online (Sandbox Code Playgroud)
问题是:我必须确保字符串的长度不超过预定义长度.此外,这个标题实际上有十分之一的字段,这些字段会不时地改变(我们仍在决定消息布局).
如何描述这种结构的最佳方式?我想,例如,使用带有数据描述的XML并使用反射来创建一个遵循实现的类(因为我需要以编程方式访问它).
而且,就像我说的那样,还有更多麻烦.我有其他类型的数据类型,限制字符/数字的数量......
我有一个表,我需要两个值都是主要的,因为我在其他表中引用此组合作为外键.表定义和我需要提供的数据如下
create table T1
(
sno number(10),
desc varchar2(10),
constraint T1_PK primary key(sno,desc)
)
DATA to put
sno | desc
---------------------------
100 | "hundred"
000 | null
120 | "one twenty"
123 | "" <EMPTY STRING>
000 | "" <EMPTY STRING>
Run Code Online (Sandbox Code Playgroud)
这里的问题是desc有时可能为null.主键不能为null所以当我遇到空值时 - 我只是在表中插入"".这里的问题是有时候desc可能有空字符串.如果我插入约数据100,Null和100,""是两个不同的东西,但我无法将它们放在表中.如果为null,我不想放置像'EMPTY'这样的字符串,因为它可能会混淆正在查看表的最终用户.
1)如何将desc作为主键处理null的情况.我无法使用自动序列号.2)如何区分由我引入的空字符串和已存在的空字符串?
我必须为数据库中的记录创建生成唯一编号标识符的逻辑.id,在数据库中生成的是一个单独的列.
此时,当用户调用"创建记录"动作时,我保存新记录,获取其数据库ID,使用此ID生成记录号,然后将其放入编辑表单.使用这种方式意味着所有实体字段都应该可以为空以将记录保存到数据库.
我不喜欢这样.我知道那应该是更好的方式.
是否有更好的做法来生成唯一的数字标识符?生成非唯一随机数的可能性是多少?
谢谢
我很难说服FxCop 10.0来分析引用AutoMapper的程序集.
我创建了一个简单的类库,通过NuGet引用了AutoMapper,并添加了以下代码:
using System;
namespace ClassLibrary4
{
public class Class1
{
public void Foo()
{
AutoMapper.Mapper.CreateMap<Obj1, Obj2>()
.ForMember(x => x.Name, opt => opt.Ignore());
}
}
public class Obj1
{
public string Name { get; set; }
}
public class Obj2
{
public string Name { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用FxCop 10.0通过命令行分析程序集,并收到消息:
无法加载C:\ Users\inelson\Documents\Visual Studio 2013\Projects\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll.
注意:找不到一个或多个引用的程序集.使用'/ directory'或'/ reference'开关指定其他程序集引用搜索路径.
未解决的参考是System.Core版本2.0.5.0.
为了隔离问题,我删除了.ForMember方法调用,将Foo()简单地删除:
public void Foo()
{
AutoMapper.Mapper.CreateMap<Obj1, Obj2>();
}
Run Code Online (Sandbox Code Playgroud)
和FxCop 10.0现在愉快地分析组装!
使用.ForMember方法导致FxCop分析失败的原因是什么?
请注意,我遇到与.NET Framework版本4.0,4.5或4.5.1以及AutoMapper 3.0.0和3.1.0相同的行为.
c# ×6
.net ×3
android ×1
asp.net ×1
asp.net-mvc ×1
automapper ×1
c++ ×1
dll ×1
fxcop ×1
http-post ×1
java ×1
linq ×1
linux ×1
null ×1
oracle ×1
portability ×1
primary-key ×1
rdbms ×1
reflection ×1
restsharp ×1
runnable ×1
sql ×1
windows ×1