我有一个表示属性列表的DAG.这些属性是这样的,如果a> b,则a具有b的有向边.它也是传递性的,因此如果a> b和b> c,则a具有c的有向边.
然而,从a到c的有向边缘是多余的,因为a具有到b的有向边缘并且b具有到c的有向边缘.我怎样才能修剪所有这些多余的边缘?我在考虑使用最小生成树算法,但我不确定在这种情况下适用的算法是什么
我想我可以从每个节点及其所有传出边缘进行深度优先搜索,并比较它是否可以在不使用某些边缘的情况下到达某些节点,但这看起来非常低效且缓慢.
算法完成后,输出将是与图形一致的所有节点的线性列表.因此,如果a有b,c和d三个有向边.b和c也各自具有d的有向边,输出可以是abcd或acbd.
我有以下XML代码.
<firstname>
<default length="6">Örwin</default>
<short>Örwin</short>
<shorter>Örwin</shorter>
<shortest>?.</shortest>
</firstname>
Run Code Online (Sandbox Code Playgroud)
为什么"最短"节点的内容会中断?它应该是一个简单的"Ö"而不是繁琐的 .XML是UTF-8编码的,处理该节点输出的函数也写入"短"和"短"的内容."Ö"清晰可见的地方.
我用C++写了两个COM类,包含在一个MFC DLL中.它们被第三方应用程序作为插件加载.
如何从这些类中获取DLL的文件名和版本号?
我无法理解如何使用ORM生成的对象.我们使用LLBLGen将数据库模型映射到对象.我们将这些对象封装在代表我们业务模型的另一层中(我认为).
也许这段代码会更好地解释这一点.
public class Book { // The class as used in our application
private BookEntity book; // LLBLGen entity
private BookType bookType; // BookType is another class that wraps an entity
public Book(int Id) {
book = new BookEntity(Id);
}
public BookType BookType {
get { return this.bookType; }
set {
this.bookType = value;
this.book.BookType = new BookTypeEntity(value.ID);
this.book.Save();
}
}
public int CountPages() { } // Example business method
}
Run Code Online (Sandbox Code Playgroud)
暴露实体的字段就像属性一样,感觉很尴尬,因为我重新映射了一遍.对于列表类型,它甚至更糟,因为我必须编写一个"添加"和"删除"方法以及一个公开List的属性.
在BookType setter中的上述示例中,我需要访问BookTypeEntity对象,我可以通过使用BookType对象的ID实例化一个新对象来获取此对象.这也感觉不舒服.
我想知道我是不是应该只扩展BookEntity对象并在那里添加我的业务逻辑?或者也许使用部分?
在LLGLGen示例中,他们直接使用实体对象,但这看起来非常混乱.我想在上面的代码中拥有可以为我的业务逻辑(如CountPages)提供方法的对象.
我有一个包含序列号的表.
表结构
SequenceGenerator
Year int
Month int
NextNumber int
Run Code Online (Sandbox Code Playgroud)
年/月制作主键.序列每月重置一次.
我正在使用Subsonic来生成DAL.为了获得下一个序列号,我写了一个类,它将下一个数字返回给请求者:
private static readonly object _lock = new Object();
private static readonly string FormatString = "{0}{1}{2}{3}";
private static readonly string NumberFormat = "000000";
public static object GetNextNumber(string prefix)
{
lock (_lock)
{
int yr = DateTime.Now.Year;
int month = DateTime.Now.Month;
SequenceGeneratorCollection col = new SequenceGeneratorCollection()
.Where(SequenceGenerator.Columns.Year, Comparison.Equals, yr)
.Where(SequenceGenerator.Columns.Month, Comparison.Equals, month)
.Load();
if (col==null || col.Count == 0)
{
SequenceGenerator tr = new SequenceGenerator();
tr.Year = yr;
tr.Month = month; …
Run Code Online (Sandbox Code Playgroud) 我有一个输出HTML的XSL转换.在head
元素中我有一个CSS文件引用.
<link rel="stylesheet" type="text/css" href="css/styles.css"/>
Run Code Online (Sandbox Code Playgroud)
我想创建一个没有外部引用的独立HTML结果,因此我想包含外部CSS引用.为了防止代码重复,我不想将样式硬编码到XSLT模板中,所以我正在寻找一些XSLT命令来复制CSS文件的文件内容.我知道xsl:include
或xsl:import
不会工作,因为他们期望XSLT文件.也没有
<xsl:copy-of select="document('css/styles.css')"/>
Run Code Online (Sandbox Code Playgroud)
因为它期望符合XML标准.
我也有一些JavaScript函数声明,我也想复制.
这可能是纯XSLT,还是我必须对XSLT文件进行一些预处理(或者对HTML文件进行后处理)?
我想通过正则表达式验证器截取表单字段中的"<"字符.我将分三个步骤描述问题:
第1步:当我尝试提交一个包含"<"字符的字段的表单时,我得到了"潜在危险请求..." - 正如ASP.NET中预期的那样.
第2步:为了避免ASP.NET的RequestValidation,我使用"[ValidateInput(false)]"在控制器中修饰我的Update方法.
它按预期工作 - 现在我可以毫无错误地发布"<"字符.
第3步:我将xVal与DataAnnotations一起使用.例如,[Required]或[StringLength(255)]按预期工作.
但是当我使用时:[RegularExpression("^ [^ <>]*$",ErrorMessage ="不允许使用特殊字符.")],我再次收到"潜在的dangeros请求..."错误,尽管[ValidateInput] (假)]指令.
发生了什么?有没有更简单的正则表达式验证方法,但是[ValidateInput(false)]到位了吗?当然,我想在模型中使用验证码,而不是在控制器中.
一些编程语言实现提供了Read,Evaluate,Print Loop交互式shell,允许程序员评估表达式和程序片段,并以增量的交互方式进行编程.
您使用和喜欢C#REPL的哪些实现?有一个可以与Visual Studio集成的将是很好的.
我找到了,但没试过,Mono C#REPL和Don Box的C#REPL
我正在创建一个自定义.net硬件框架,其他程序员将使用它来控制某些硬件.他们将添加对我们的DLL的引用以进入我们的硬件框架.我需要一个可以从多个应用程序(进程)访问的共享类.
单例模式似乎是我需要的,但它只适用于进程内的多个线程.我可能完全错了,但这是我目前拥有的C#代码的一个例子.我不禁觉得设计不正确.我希望我可以分享更具体的信息,但我不能.
框架:(共享DLL)
public class Resources
{
static readonly Resources m_instance = new Resources();
public string Data;
private Resources()
{
Data = DateTime.Now.ToString();
}
public static Resources Instance
{
get
{
return m_instance;
}
}
}
Run Code Online (Sandbox Code Playgroud)
测试应用程序:(最终客户应用程序)
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Press enter to capture the resource!");
Console.ReadLine();
var resources = Resources.Instance;
Console.WriteLine("\r\n{0}: {1}\r\n", Thread.CurrentThread.ManagedThreadId, resources.Data);
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += WorkerDoWork;
worker.RunWorkerAsync();
while (worker.IsBusy)
{
Thread.Sleep(100);
}
Console.WriteLine("Press enter to close the …
Run Code Online (Sandbox Code Playgroud) 如何在SQL Server上找到当前数据库的事务级别?
sql sql-server sql-server-2005 isolation-level sql-server-2008
c# ×4
.net ×1
algorithm ×1
asp.net-mvc ×1
c++ ×1
com ×1
css ×1
debugging ×1
dll ×1
encoding ×1
frameworks ×1
include ×1
javascript ×1
llblgenpro ×1
mono ×1
oop ×1
orm ×1
singleton ×1
sql ×1
sql-server ×1
tree ×1
utf-8 ×1
validation ×1
xml ×1
xslt ×1
xval ×1