NVelocity-0.4.2.8580 的改动记录[发个vs2009能用的版本] — “It appears that no class was specified as the ResourceManager…” bug 矫正等

by admin on 2019年2月14日

 


落实格局:

好啊,又在网上查找了无数的好像难题.都不行.时期看到说因为 NVelocity
交由了怎样 xxx 维护了,所以 NVelocity 的源码版本有七个.
这时意外在某网友的事例中发现了能用的 .net 2.0 版本 NVelocity.dll
但其文件没有版本新闻,显明不是法定的,但那位网友的稿子突显是反复转发已经找不到其何等修改的音信了.作者下载的文书位于(NVelocity-0.4.2.8580):

 

http://files.cnblogs.com/-clq/NVelocity-0.4.2.8580%5B2014.05.23%5D%5Bclq\_modify%5D.zip

至今马到功成。

            try
            {//clq
                foreach (Assembly a in assemblies)
                {
                    String prefix = a.FullName.Substring(0,
a.FullName.IndexOf(“,”)).ToLower();
                    String[] names = a.GetManifestResourceNames();
                    try
                    {//clq //那里都不利,应当是前边的两句话造成的
                    foreach (String s in names)
                    {

  • 一往直前代码:

    1 / 控制滑块任意地方点击事件不可用 /
    2 function disableSliderTrack($slider) {
    3
    4 $slider.bind(“mousedown”, function (event) {
    5
    6 var x = event.pageX;
    7 var y = event.pageY;
    8
    9 var $handle = $(this).find(“.ui-slider-handle”);
    10
    11 var left = $handle.offset().left;
    12 var right = left + $handle.outerWidth();
    13 var top = $handle.offset().top;
    14 var bottom = top + $handle.outerHeight();
    15
    16 return (x >= left && x <= right && y >= top && y <= bottom); 17 18 }); 19 }

文件 ResourceLocator.cs 中

规章大道通加拉加斯,通过重写控件的mousedown方法也能兑现对click事件的“禁用”。

假如还有任何 bug 我会再上传新版本.别的也盼望有询问内情的网友牵线下
nvelocity 如此混乱的原因.

合法API并没有提供禁用点击事件的风云的法门,由此要兑现这一效果只好另辟蹊径。留意到点击Slider时都要接触多少个mousedown方法改变滑块所处的义务,不妨重写那一个主意,在mousedown事件触发时,保持原有的滑块地点不变。

下载地址为:

  • 在页面加载时初步化全数滑块对象

    1 $(function(){
    2 disableSliderTrack($(“.ui-slider-track”));
    3 });

NVelocity 这些工具的运用相信超过一半网友都以因为和本身一样在 java 时使用的是
Velocity ,由此在选用 C#必发365bifa0000, 特别希望有贰个像样的工具包.而搜索拿到的就是
NVelocity.

在动用jQuery Mobile
Slider时,发以往页面上下拖动时,很不难不小心触发Slider的点击事件,从而导致误操作。为此须求禁用Slider的点击事件。

Template.cs 文件中

必发365bifa0000 1

http://nvelocity.sourceforge.net/

  • 先是找到要操作的目的:

因为另有付出记录工具最新没怎么在 cnblog
写开发备忘.可是我以为这些是个相比较严重的标题,觉得有须求让更加多的人领略处理情势,所以在
cnblog 也放上一篇希望广为传播.

NVelocity 两三年前本身是用过的,所以并不觉得本次用会有如何难题.
照例在网上寻找后加入工程及网上的各样示例就点运营.为料出现了 “It appears
that no class was specified as the ResourceManager…”
,心里也并不慌张,因为依据经验估计也等于某些 dll 引用没弄进来.
结果折腾了种种文件和网上的各个例子就是不对.
不知不觉八个晚上就过去了,觉得工作有点严重,放下马虎的心态,打开了小编原先的工程.发现有多少个差其余地方:
1.事先集团用的是 vs2008 , 现在用的是 vs2009,不只怕直接编译.

其次处改动

如上修改后拔取一段时间后,因为作者个人的工具链中很多是不襄助 utf8
的(只怕很劳累),在此将模板改为了普通的 gbk
编码形式.这时发现那么些本子没办法考订编码方式.我修改了2个地点才行.不荒谬的编码校对代码为:


好呢,小编把那一个 NVelocity.dll
替换好了.但编译时即报错,查看了文件的版本音讯,其写明了是 for .net 4.0
的,当然那时直接换用 vs2008 就好了.不过本身的情况有点特殊,生产条件是 .net
2.0 的,不是太便宜令人晋升,再说升级 .net 环境有时候会成为横祸 —
我原先升级 .net 3.5 时遇见过很频繁,即便 .net 4.0
好很多.实在不想小题大作.

           
vltEngine.SetProperty(RuntimeConstants_Fields.OUTPUT_ENCODING,
“GB2312”);//修改 NVelocity-0.4.2.8580 的源码后才能用那八个,并且最好是用
GBK
           
vltEngine.SetProperty(RuntimeConstants_Fields.INPUT_ENCODING,
“GB2312”);//

            VelocityEngine vltEngine = new VelocityEngine();
            //4.0 这里是 RuntimeConstants.RESOURCE_LOADER
           
vltEngine.SetProperty(RuntimeConstants_Fields.RESOURCE_LOADER,
“file”);
            string path = _this.Server.MapPath(“~/”);
           
vltEngine.SetProperty(RuntimeConstants_Fields.FILE_RESOURCE_LOADER_PATH,
path);
            vltEngine.Init();//不修改库代码,那里会报错

http://nvelocity.codeplex.com/

首先次修改

好了,不管那么多,至少在自家的汉语版本 vs二零零六上须求修改以下部分才能健康使用:


因为将来互联网上vs2009能一贯利用的本子很难找,所以放1个修改自 sourceforge
能用的版本,并且证实修改的格局.

在此版本 nvelocity 中不起功能,须求修改:

很醒目小编或者是鬼子,编码指定的地点弄错了.


而网友13分可用的 .net 2.0 版本已经远非下载地址了.说实话作者知道不了
sourceforge.net 
那么些怎么用持续,这么盛名的控件在如此有名的网站上提供的文书居然是荒谬的.通过本身查找的其他信息,相应的
bug 应当是有人提交了的,不知何故没有提交到 sourceforge.net 那里.

因为那是 google 搜索的率先个,而 baidu 搜索的率先个就是十二分 for .net 4.0
版本的:

 


基于本人的测试大致的失误原因是,有些财富文件在反射机制搜索时不辅助某些接口,导致其极度退出了剩下财富的处理.所以直接加几个try 就行了(ps:反射完成,或许作用不高啊).

                        if (s.ToLower().Equals(fn) ||
s.ToLower().Equals(prefix + “.” + fn))
                        {
                            this.filename = s;
                            assembly = a;
                            isResource = true;
                        }
                    }
                    }
                    catch (System.Exception ex)
                    {
                        String s = ex.Message;
                        System.Console.WriteLine(“bbbbbb:” + s);
                    }//clq
                }
            }catch(System.Exception ex)
            {
                String s = ex.Message;
                System.Console.WriteLine(“aaaaaa:” + s);
            }//clq
            
        }//if clq

2.从前工程中唯有一个 NVelocity.dll 文件,也没有源码,而本次下载的却有
NVelocity.dll,NVelocity.http.dll 及源码等多少个文件.

如此那般改正后下边那样的代码就可以透过运转了.


为便利我们参考,小编放上修改后的全部系列文件,那里用的是 debug
版本,对功能有需求的条件请自行编译其余版本.代码修改的地方不多,大家可全文检索
“//clq”
字样就能找到,其余代码因为自己水平有限也看不懂也不敢乱改.出于稳定和不想惹麻烦的因由将来也不打算大改,能在自身日前以此小品种中用就行.

            //System.IO.StreamReader br = new System.IO.StreamReader(new
System.IO.StreamReader(is_Renamed,
System.Text.Encoding.GetEncoding(encoding)).BaseStream);
            System.IO.StreamReader br = new System.IO.StreamReader(new
System.IO.StreamReader(is_Renamed,
System.Text.Encoding.GetEncoding(encoding)).BaseStream,
System.Text.Encoding.GetEncoding(encoding));//clq 2014.05.23

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图