我需要为某些Word/PDF文档设置Company字段值.我在谈论你在文件属性下看到的扩展文件属性(摘要/作者/标题等).
我知道如何获得它们(通过使用shell32.dll类库).我假设我也可以使用相同的类库来设置它们,但是看起来编写扩展属性似乎有点困难并且shell32.dll不允许这样做.
我发现了一些东西taglib-sharp,似乎可以选择设置扩展属性,但我真的不明白它是如何工作的.
我有2个字符串--dir1和dir2,我需要检查一个是否是其他的子目录.我尝试使用Contains方法:
dir1.contains(dir2);
Run Code Online (Sandbox Code Playgroud)
但是如果目录具有相似的名称,例如 - c:\abc并且c:\abc1不是子目录,则返回true也返回true.肯定有更好的办法.
我厌倦了一直这样做:
<Elem x={x} y={y} z={z} />
<Elem x={this.props.x} y={this.props.y} z={this.props.z} />
Run Code Online (Sandbox Code Playgroud)
有没有办法可以让这样的东西起作用?
<Elem x, y, z />
Run Code Online (Sandbox Code Playgroud)
要么
<Elem {x, y, z} />
Run Code Online (Sandbox Code Playgroud) 我需要在每个循环中从我的backgroundworker返回多个STRING值,所以我尝试使用ReportProgress第二个参数作为字符串数组.代码示例:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string[] workerResult = new string[2];
for (int i=0; i<someNumber; i++)
{
//do some heavy calculating
workerResult[0] = "this string";
workerResult[1] = "some other string";
backgroundWorker1.ReportProgress(i, workerResult) // also tried workerResult[] and [2]
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
string[] results = (string[])e.UserState;
MessageBox.Show(results[0]); // line of error
MessageBox.Show(results[1]); // line of error
}
Run Code Online (Sandbox Code Playgroud)
它编译,但在运行时我尝试访问Userstate返回的字符串,我收到一个错误:"对象引用未设置为对象的实例."
对我来说,似乎在将数组参数传递给ProgressChanged委托时出错,或者在尝试设置结果数组值时使用ProgressChanged方法.
我看到组合statsd + telegraf + Influxdb一直使用.
为什么不使用statsd(没有telegraf)来聚合和转发指标?包含电报的额外好处是什么?
提取 .zip 档案的最快方法是什么?我的应用程序的性能很大程度上取决于 .zip 文件的提取速度。我正在使用 dotNetzip atm,但似乎可以有更多更快的工具。如果有,它们安全吗?我听说 QuickLZ 是最快的,但还没有测试过,也没有找到任何代码示例或如何在 c# 中使用它。任何帮助将大大appriciated。
我有一个名为Form的表单ScanFolder,我需要另一个表单,需要非常相似ScanFolder,所以我决定使用表单继承.但是构造函数似乎存在一些误解.
ScanFolder 好像:
public partial class ScanFolder : Form
{
public ScanFolder(MainForm parent, bool[] autoModes, GlobalMethods GMethodsClass)
{
//Doing something with parameters
}
}
Run Code Online (Sandbox Code Playgroud)
我试图Form像这样继承:
public partial class Arch2 : ScanFolder
{
}
Run Code Online (Sandbox Code Playgroud)
但是我收到警告未找到类型'mhmm.ScanFolder'的构造函数,并且Arch2表单编辑模式也出现错误,我看到调用堆栈错误.
所以我尝试过这样的事情:
public partial class Arch2 : ScanFolder
{
public Arch2(MainForm parent, bool[] autoModes, GlobalMethods GMethodsClass)
: base(parent, autoModes, GMethodsClass)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但它仍然是一样的.
如你所见,我显然不知道自己在做什么.我想要实现的是Arch2看起来一样ScanFolder,所以我可以在设计器视图中看到它,并覆盖一些方法或事件处理程序.
我试图获取disabled(disabled="disabled")<input>字段的值,但它返回一个空字符串.
我曾尝试:.Text,GetAttribute("value")但没有这个至今的作品.
我想在运行我的Jasmine specrunner.html时直接在浏览器中获取代码覆盖率.我在Jasmine + Istanbul中找到的所有示例也使用Grunt/Gulp/Karma或其他一些cmd线工具.我不希望这样.
有没有办法在Jasmine + Istanbul的浏览器中显示结果,或者必须在这里使用cmd测试运行器?
我在VS2010中有一个WebSite项目.文件夹结构如下:
../packages
../Website
../Website.DataAccess
etc.
Run Code Online (Sandbox Code Playgroud)
我想通过在VS2010/Open Website中打开根文件夹来打开网站.但是当我这样做时,它似乎缺少所有引用,例如System.Web.Helper,System.Web.Mvc等.错误消息如:
无法加载文件或程序集'System.Web.Helpers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.
继续出现.
那么为什么甚至这个文件夹"包"?它应该自动让我打开网站项目而不用担心所有的引用/组件?
我有什么办法让WebSite看到"packages"文件夹并使用它,所以我可以构建这个WebSite吗?
编辑1:
此外,当尝试从nuget控制台安装新包时:install-package system.web.helpers
我收到错误消息: The current environment doesn't have a solution open.
由于这是一个WebSite,我没有解决方案文件.无论如何,对我来说似乎有点奇怪,需要解决方案文件.
我在HomeController中有一个方法,我试图通过URL访问,如下所示:
http://localhost/web/home/GetSmth
Run Code Online (Sandbox Code Playgroud)
第一次它工作,但刷新页面后,我收到此错误:
The operation cannot be completed because the DbContext has been disposed.
Run Code Online (Sandbox Code Playgroud)
正如标题所述,我正在尝试根据请求使用Castle Windsor和DbContext.
public class Installer1 : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.BasedOn<IController>()
.LifestyleTransient()
);
var connString = ConfigurationManager.ConnectionStrings["MainDbContext"].ConnectionString;
container.Register(Component.For<MainDbContext>().DependsOn(Property.ForKey("conn").Eq(connString)).LifeStyle.PerWebRequest);
container.Register(Component.For<ISomeService>().ImplementedBy<SomeService>());
}
}
Run Code Online (Sandbox Code Playgroud)
HomeController看起来像这样:
public class HomeController : Controller
{
private ISomeService _someService;
public HomeController(ISomeService someService)
{
_someService = someService;
}
public ActionResult Index()
{
return View();
}
public JsonResult GetSmth()
{
var data = _someService.GetData().ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的应用编写一些业务逻辑.我的应用程序的核心是来自Database First模型的EF生成实体.我已经从.edmx部分分离了生成的类(.tt文件).
我想找到放置业务逻辑的最佳位置,但问题是,业务逻辑需要一些复杂的依赖关系,例如,需要记录,调用一些WebService,或者对DB进行纯SQL调用.因此,我不能只使用new()内部函数并创建硬依赖项,但我想以某种方式从它们中抽象出来,遵循DI原则.
public class Person
{
public Person(IDbCaller dbCaller, IWebServiceCaller webServiceCaller) { }
}
Run Code Online (Sandbox Code Playgroud)
我的第一个赌注是使用扩展EF类的部分类.
但在阅读了一些文章后,我现在认为将依赖注入EF类并不是一个好主意:
http://lostechies.com/jimmybogard/2010/04/14/injecting-services-into-entities/
那么,我应该把这个逻辑放在哪里呢?我同意,对EF实体的依赖性很差,但我真的找不到解决方案.逻辑需要在某个地方.我看到一些选项/问题:
1)在Service层中放置业务逻辑(需要依赖关系).这可能导致贫血领域模型,但是服务层可能是这种逻辑的正确位置,需要依赖性?
2)创建一些king或Wrapper/Factory类,每次查询返回实体时我都需要调用它,所以我可以用业务逻辑包装实体.
3)将该逻辑放在其他类中,将实体作为函数参数.
对此有哪些好的常见做法?
.net architecture domain-driven-design entity-framework dependency-injection
我在PyroCMS上创建了一些自定义模块,问题是,从global.css和其他默认设计css文件继承的默认设计真的与我的新设计混淆,并且更难为我的自定义模块创建设计.
写作!在每一行都很重要似乎不是一个好选择.
此外,我正在尝试添加chromatable jQuery插件,但它并不是很正确,因为默认的CSS文件与插件试图添加的设计相冲突.
这样做有什么好的做法吗?也许有一种方法可以清除或重置我的自定义模块设计的所有CSS?
c# ×6
.net ×5
performance ×2
architecture ×1
constructor ×1
css ×1
dbcontext ×1
directory ×1
extract ×1
inheritance ×1
istanbul ×1
jasmine ×1
jquery ×1
monitoring ×1
nuget ×1
pyrocms ×1
reactjs ×1
selenium ×1
statsd ×1
telegraf ×1
web ×1
webdriver ×1
winforms ×1
zip ×1