我正在开发一个用于存储高度安全信息的Windows Phone 7项目.此数据受密码保护.如果我在另外3个CryptoStream中加密一个CryptoStream(共有4个隐藏流互相嵌入,每个使用不同的方法来生成密钥,初始化向量和盐).这种方法是否足够安全,还是需要更多的CryptoStream(每个使用256位AES加密)?
下面是我的一些错误记录代码.当我的应用程序内发生异常时,我将其记录到数据库中.如果该数据库已关闭或存在其他问题,我会尝试在事件查看器中记录它.
如果事件查看器由于某种原因写入失败会发生什么?我如何放弃或吞下这个新例外?
void SaveLog(string accountId, Exception ex, Category category, Priority priority)
{
try
{
using (var connection = new SqlConnection(…))
{
connection.Open();
command.ExecuteNonQuery();
}
}
catch (Exception exception)
{
// exception while logging!
using (var eventLog = new EventLog { Source = "tis" })
{
eventLog.WriteEntry(
exception.Message + Environment.NewLine +
exception.StackTrace,
EventLogEntryType.Error);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序将用户信息与图像保存到数据库.管理员可以通过不同的表单视图访问已保存的信息.单击列表框项目将显示从数据库中检索的图像的详细信息.
UserViewDetails.cs:
private void lbEmp_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (lbEmp.SelectedIndex != -1)
{
em.Emp_ID = Convert.ToInt32(lbEmp.SelectedValue);
em.SelectById();
if (!em.EmptyPhoto)
pbEmp.BackgroundImage = em.Picture;
else
pbEmp.BackgroundImage = null;
txtEmpName.Text = em.Emp_Name;
txtImagePath.Text = em.ImgPath;
cmbEmpType.SelectedText = em.EmployeeType;
cmbCountry.SelectedValue = em.CountryID;
cmbCity.SelectedValue = em.CityID;
}
}
catch (Exception) { }
}
Run Code Online (Sandbox Code Playgroud)
从父表单调用此表单Form1:
Form1.cs中:
try
{
var vi = new Admin.frmViewEmployeeInfo();
vi.ShowDialog();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
在这里,捕获了"内存不足"异常.怎么了?相同的代码不会在我的另一个应用程序中抛出任何异常.
如何生成唯一的文件名或路径?我正在寻找适用于Unix(类似)操作系统和Windows的解决方案.
我创建了一个QTcpServer端口1024.我想通过使用URL从websocket连接到它ws://localhost:1024,但它没有连接.我们不能将websockets连接到常规TCP服务器套接字吗?
我有这个方法:
public override void respond(params string[] resargs)
{
foreach (command cmd in pndgcmds)
{
cmd(this);
}
if (objs[resargs[0]].status)
objs[resargs[0]].request(resargs);
else
{
pndgcmds.Add(
(myclass master) =>
{
if (master.objs[resargs[0]].status != true) return;
master.objs[resargs[0]].request(resargs);
//code to remove the delegate
});
}
}
Run Code Online (Sandbox Code Playgroud)
检查对象是否能够响应,使其响应(如果有),否则将命令存储在字典中,以便在下次调用响应时检查并调用状态.
我有两个问题.
如何编写代码来删除委托?我不知道该怎么做.
如您所见,委托的许多内部工作依赖于方法参数.代表将如何表现?
提前致谢!
这个单例设计模式是否正确?我的意思是当它是静态的并且方法是同步的时,检查对象是否为空的需要是什么.
public class MySingleton {
int val = 10;
private static final MySingleton singleton = new MySingleton();
private MySingleton() { }
public static synchronized MySingleton getSingleton() {
return singleton;
}
}
Run Code Online (Sandbox Code Playgroud) 在我的Windows应用程序中,我想在Text单击某个按钮时从另一个线程更新标签的属性:
这是我的按钮单击事件处理程序的代码:
StatusLabel.Text = "Started";
Task.Factory
.StartNew(() =>
{
… // long-running code
StatusLabel.Text = "Done";
}, CancellationToken.None,
TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(tsk =>
{
MessageBox.Show("something broke");
var flattened = tsk.Exception.Flatten();
// note: Don't actually handle exceptions this way, m'kay?
flattened.Handle(ex => { MessageBox.Show("Error:" + ex.Message); return true; });
}, TaskContinuationOptions.OnlyOnFaulted);
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,执行上面的代码.我没有StatusLabel.Text = "Started";立刻看到.似乎它等待// long-running code然后它被执行.
我想要的是在单击按钮后立即在标签中看到"已启动",并且当长时间运行的任务完成时,我想在标签上看到"完成".
我有一些班级类型:
class MyClass
{
…
}
Run Code Online (Sandbox Code Playgroud)
我想知道在接口中包含这种类型的对象是好还是坏?
interface IInterface
{
List<MyClass> _myobj { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是不好的做法吗?这是否意味着IInterface取决于MyClass因为我从这种类型引用它?
我目前正在使用C#中的To-Do列表Windows Forms应用程序,它具有日期时间选择器,通过一些研究我能够发现我能够在Designer选项卡中设置日期时间选择器的MinValue属性.表格.
计划是通过以下代码设置日期时间选择器的最小日期值:
this.startDatePicker.MinDate = System.DateTime.Now;
this.startDatePicker.Value = System.DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
这不是问题,这段代码很好,它的工作原理.它成功地将日期时间选择器的最小值设置为今天,从而基本上阻止用户在此日期之前选择日期.
但是,我的问题是,由于某种原因,Designer Tab决定重置它并自动删除此代码.
我只是想知道是否有办法阻止Designer Tab更改日期时间选择器的最小值?
c# ×7
winforms ×3
.net ×1
c++ ×1
cryptography ×1
delegates ×1
java ×1
parameters ×1
qt ×1
qtcpserver ×1
singleton ×1
unix ×1
websocket ×1
windows ×1