在我的代码上运行FxCop,我收到此警告:
Microsoft.Maintainability:'FooBar.ctor与来自9个不同命名空间的99种不同类型相结合.重写或重构方法以减少其类耦合,或考虑将方法移动到与其紧密耦合的其他类型之一.高于40的类耦合表明可维护性差,40到30之间的类耦合表明适度的可维护性,并且低于30的类耦合表明良好的可维护性.
我的类是来自服务器的所有消息的登陆区域.服务器可以向我们发送不同EventArgs类型的消息:
public FooBar()
{
var messageHandlers = new Dictionary<Type, Action<EventArgs>>();
messageHandlers.Add(typeof(YouHaveBeenLoggedOutEventArgs), HandleSignOut);
messageHandlers.Add(typeof(TestConnectionEventArgs), HandleConnectionTest);
// ... etc for 90 other types
}
Run Code Online (Sandbox Code Playgroud)
"HandleSignOut"和"HandleConnectionTest"方法中的代码很少; 他们通常将工作交给另一个班级的职能部门.
如何通过较低的耦合使这个类更好?
可能重复的
Windows窗体应用程序,如谷歌浏览器,具有多个进程
Chrome/IE8多进程设计,是否可以在.NET中使用?
适用于Google Chrome等多进程C#应用的示例
IE8和Google Chrome浏览器都为打开的每个选项卡分别设置了进程.
例如,您启动IE8并在自己的选项卡中打开Yahoo和Google,最终您的系统上运行了3个进程:
我正在玩C#/ WinForms中类似的东西.
举个简单的例子:我有一个显示Form的主进程,我在子进程中有一个Button.我们如何将Button从其他进程渲染到我的表单上?
使用C#,我需要获取所有Firefox书签,以便将它们导入我们的数据库.我怎样才能做到这一点?
我知道这个问题,在Java中读取FF 3书签,但那里的答案似乎都围绕着Java数据库驱动程序,我不确定其中一些答案是不是特定于Java的.
我的主要问题是,"如何在C#中阅读Firefox书签?"
次要问题:我看到\%用户个人资料%\应用程序数据\ mozilla\firefox\profiles\bookmarkbackups\bookmarks- [date] .json文件 - 我可以解析一下吗?如果是这样,是否有任何现有的解析器?
修辞哀叹的问题:为什么这不能像IE一样简单,我只读了\%user profile%\ favorites中的.url文件?呸.
我有一个INotifyPropertyChanged对象,Foo.我使用Rx的FromEvent方法将Foo转换为可观察的事件流:
var myFoo = new Foo();
var eventStream = Observable.FromEvent<PropertyChangedEventArgs>(myFoo, "PropertyChanged");
Run Code Online (Sandbox Code Playgroud)
现在我想听一个特定的属性改变,如果.Progress == 100,取消订阅:
eventStream
.Where(e => myFoo.Progress == 100)
.Subscribe(OnFooFinished);
Run Code Online (Sandbox Code Playgroud)
如果进度== 100,我如何取消订阅?如果我在.Where子句后添加.Take(1)调用,那会自动取消订阅吗?
我想使用Lucene(特别是Lucene.NET)来搜索电子邮件地址域.
例如,我想搜索"@ gmail.com"以查找发送到Gmail地址的所有电子邮件.
对"*@gmail.com"运行Lucene查询会导致错误,星号不能位于查询的开头.运行"@ gmail.com"的查询不会返回任何匹配项,因为"foo@gmail.com"被视为一个完整的单词,并且您无法仅搜索单词的某些部分.
我怎样才能做到这一点?
我们有一个.NET桌面应用程序在生产中崩溃.我们如何诊断错误?我想知道发生的异常类型,错误消息和堆栈跟踪.
因为我们的代码没有处理异常,所以我们收到了"此应用程序遇到问题并需要关闭"的 Windows消息框.唯一的选择是关闭,没有调试按钮.
这篇MSDN文章建议查看Windows事件注册表.我查了一下,里面的信息是:
错误应用程序Initect.Server.UI.exe,版本0.12.9084.90,时间戳0x49cac472,错误模块KERNEL32.dll,版本6.0.6001.18000,时间戳0x4791a81d,异常代码0xe0434f4d,错误偏移量0x0002f35f,进程ID 0x44c,应用程序启动时间0x01c9ada7f320cab0
这些信息如何告诉我异常类型,堆栈跟踪和错误消息?
有没有人知道任何在LINQ上实现实体属性值(EAV)模式的抽象的库?我有一个大型的遗留EAV数据库,我正在尝试创建一个更干净的数据访问层,并且使用LINQ的想法真的很吸引人,所以我正在寻找任何我可以用来快速启动的代码.
---编辑---我可以提供任何其他信息来帮助解决这个问题吗?
我正在尝试在.NET WCF Web服务中启动并运行Sqlite和Entity Framework.
当我尝试将任何内容保存到数据库时,我收到错误"尝试编写只读数据库".这是完整的错误信息:
System.Data.EntityException:在提供程序连接上启动事务时发生错误.有关详细信息,请参阅内部异常
---> System.Data.SQLite.SQLiteException:尝试编写只读数据库
尝试 在[snip] ..........................
在System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
上编写只读数据库. ..............................>在System.Data的System.Data.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)处.位于System.Data.Objects.Object上的System.Data.EntityClient.EntityConnection.BeginTransaction()处的System.Data.Objects.ObjectContext.SaveChanges(布局为acceptChangesDuringSave)的Common.DbConnection.BeginTransaction()位于System.Data.Objects.ObjectContext.SaveChanges()处...
这是我在Web.config中的EF配置(带有换行符以便于阅读):
<connectionStrings>
<add
name="FooEntities"
connectionString="metadata=res://*/FooDataModel.csdl|
res://*/FooDataModel.ssdl|
res://*/FooDataModel.msl;
provider=System.Data.SQLite;
provider connection string='data source=C:\domains\myfoosite.com\wwwroot\FooService\Foo.sqlite'"
providerName="System.Data.EntityClient" />
<connectionStrings>
Run Code Online (Sandbox Code Playgroud)
为什么我收到此错误?为什么数据库是只读的?
我试过的一些事情:
确保Web服务可以写入目录和文件.(我尝试将纯文本文件写入与测试相同的目录.)
我在连接字符串中添加了'read only = False'.
我一直试图从我的应用程序中的工具包中获取新的颜色选择器,但没有成功......
以下是应该采用窗口背景颜色来填充当前颜色的示例代码,并且在新选择时,应该将背景颜色更改为所选颜色...
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="100" Width="200" xmlns:extToolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit/extended"
Name="Window" Background="blue">
<Grid>
<extToolkit:ColorPicker Name="colorPicker1"
SelectedColor="{Binding ElementName=Window,Path=Background}"
CurrentColor="{Binding ElementName=Window,Path=Background}" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是我在彩色标签上找到的所有文档...... http://elegantcode.com/2010/08/15/extended-wpf-toolkit-new-colorpicker-control/