Diffplex入门

时间:2014-04-16 07:16:24

标签: asp.net c#-4.0 diffplex

我想强调asp.net中两个文件之间的区别。网络搜索后,我选择了Diffplex APi。我是个乞丐。我需要一些如何实施它的指导?我添加了参考图书馆,这就是我能理解的。没有关于Api的任何文档。我之前没有使用过Apis。

1 个答案:

答案 0 :(得分:6)

这是一个简单的例子,来自“文档”(即源代码),可以帮助您入门。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DiffPlex;
using DiffPlex.DiffBuilder;
using DiffPlex.DiffBuilder.Model;
using System.Text;


namespace DiffPlexTest.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            StringBuilder sb = new StringBuilder();

            string oldText =  @"We the people
                of the united states of america
                establish justice
                ensure domestic tranquility
                provide for the common defence
                secure the blessing of liberty
                to ourselves and our posterity";
            string newText = @"We the peaple
                in order to form a more perfect union
                establish justice
                ensure domestic tranquility
                promote the general welfare and
                secure the blessing of liberty
                to ourselves and our posterity
                do ordain and establish this constitution
                for the United States of America";

            var d = new Differ();
            var builder = new InlineDiffBuilder(d);
            var result = builder.BuildDiffModel(oldText, newText);

            foreach (var line in result.Lines)
            {
                if (line.Type == ChangeType.Inserted)
                {
                    sb.Append("+ ");
                }
                else if (line.Type == ChangeType.Deleted)
                {
                    sb.Append("- ");
                }
                else if (line.Type == ChangeType.Modified)
                {
                    sb.Append("* ");
                }
                else if (line.Type == ChangeType.Imaginary)
                {
                    sb.Append("? ");
                }
                else if (line.Type == ChangeType.Unchanged)
                {
                    sb.Append("  ");
                }

                sb.Append(line.Text + "<br/>");
            }

            ViewData["old"] = oldText;
            ViewData["new"] = newText;
            ViewData["result"] = sb.ToString();

            return View();
        }
    }
}