据我所知,Bridge模式的目的是引用维基百科"将抽象与其实现分离".那不就是接口的作用.通过决定接口并强制类使用该接口,任何其他类都可以与此接口进行交互,而无需任何有关内部工作的知识.
那么一个接口相当于一个Bridge?
我已经实现了以下连接到webservice并从给定站点下载favicon的功能,并将其保存到我存储在数据库中的byte []中.我现在想要设置它以便将图标保存到磁盘.但是当我尝试从byte []创建图像时,我得到一个"参数无效".
我的代码如下..
stream.Write(imageByteArray, 0, imageByteArray.Length);
Image i = Image.FromStream(stream); // EXCEPTION HAPPENS HERE.
i.Save(@"C:\tmp\" + filename + ".ico");
Run Code Online (Sandbox Code Playgroud)
例外发生在中间行.
这个代码在十分之一的情况下完美地工作了九次,但是对于一些favicons,甚至认为图标是一个有效的图像(或者至少它看起来是,并且当它指向它时它在浏览器中显示)我得到了这个例外.
有没有人有任何想法?我在这里拔头发!
谢谢
戴夫
编辑:出现抛出错误的数组中的值为127.
我有一组与我的控制器有关的特定视图,我想要任何调用*_path或*_url附加一组参数.
是否有一些我可以覆盖的魔术方法让我这样做?我不知道在Rails代码中甚至处理的方法*_path或*_url方法.
编辑为清晰起见:我正在寻找一种方法来做到这一点,这样我就不必修改每个需要发生的视图中的每个链接.我不希望每个触及这组视图的编码器都必须记住在他们添加到页面的每个链接上附加一个参数.应自动附加相同的参数.我认为改变*_url或*_path称为失败.类似地,必须覆盖每个*_url或*_path调用被认为是失败的,因为每当添加/删除新链接时都必须添加/删除新方法.
我试图通过反射找到界面授予我的所有方法.我有一个类型数组,我验证只有接口,从那里我需要提取所有方法.不幸的是,如果我做类似的事情(IList).GetMethods()它只返回IList上的方法而不是ICollection上的方法,或者IEnumerable我尝试了以下linq查询,但它不返回外部接口上找到的方法.如何修复查询?
from outerInterfaces in interfaces
from i in outerInterfaces.GetInterfaces()
from m in i.GetMethods()
select m
Run Code Online (Sandbox Code Playgroud)
如果这是SQL,我可以做一些类似于带有union all的递归CTE,但我不认为C#中存在这样的语法.有人可以帮忙吗?
我发现自己用try\catch语句进行了太多的错误处理,并且让我的代码变得丑陋.你们有任何技术或框架来使这更优雅吗?(在c#windows窗体或asp.net中).
我正在尝试转换由Raphael JS(和用户,因为您可以拖动和旋转图像)生成的SVG .我在浏览器中跟踪了这个转换SVG图像(JPEG,PNG等),但仍然无法获得它.
它一定很容易,但我不能指责我错了.
我得到了我在一个div与SVG #ec作为id与画布的一个#canvas.
function saveDaPicture(){
var img = document.getElementById('canvas').toDataURL("image/png");
$('body').append('<img src="'+img+'"/>');
}
$('#save').click(function(){
var svg = $('#ec').html();
alert(svg);
canvg('canvas', svg, {renderCallback: saveDaPicture(), ignoreMouse: true, ignoreAnimation: true});
});
Run Code Online (Sandbox Code Playgroud)
警报给了我:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="600" height="512">
<desc>Created with Raphael</desc>
<defs></defs>
<image x="0" y="0" width="300" height="512" preserveAspectRatio="none" href="imageurl.jpg"></image>
<rect x="168" y="275" width="52" height="70" r="0" rx="0" ry="0" fill="none" stroke="#000" stroke-dasharray="8,3" transform="rotate(21.91207728 194 310)" style="opacity: 1; display: none; " opacity="1"></rect>
<circle cx="50" …Run Code Online (Sandbox Code Playgroud) 我想将一堆C++文件编译成原始机器代码并使用C语言编写的依赖于平台的启动器运行它.(类似于fread(缓冲区,1,len,文件); a =((*int(*) (int))缓冲区)(b);)
如何告诉g ++输出原始代码?
函数调用会起作用吗?我怎样才能使它工作?
我认为linux和windows的调用约定有所不同.这是一个问题吗?我该如何解决?
编辑:我知道PE和ELF阻止DIRECT启动可执行文件.但这就是我的首发.
我有一个非常复杂的VC2008项目.为了理解它的内部工作,我试图简化它,现在我得到大多数文件的以下类型的289个错误:
错误5错误C2471:无法更新程序数据库'c:\ users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\debug\vc90.pdb'c:\ users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file__analyze_buffer_minimizesize.cpp 1 CLI
错误6致命错误C1083:无法打开程序数据库文件:'c:\ users\ryan\documents\visual studio 2008\projects\_vc\myinfo\cli\debug\vc90.pdb':没有这样的文件或目录c:\ users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file__analyze_buffer_minimizesize.cpp 1 CLI
我的系统:win7/VS2008
我有两个Delphi运行时包.在SecondPackage包括FirstPackage它的requires条款.其中一位开发人员最近在第一个包中添加了几个新文件.
现在,当我编译第一个包时,我没有任何错误,但是当我编译第二个包时,我不断得到:
[DCC Fatal Error] FirstPackage.dpk(91): F1026 File not found: 'SomeFile.dcu'
Run Code Online (Sandbox Code Playgroud)
SomeFile已经包含FirstPackage但重新添加它以FirstPackage移动SomeFile到Contains子句的结尾并让我:
[DCC Fatal Error] FirstPackage.dpk(91): F1026 File not found: 'SomeOtherFile.dcu'
Run Code Online (Sandbox Code Playgroud)
我可以继续重新添加文件,直到我脸红了,结果总是一样的.编译contains时无法找到子句中的第一个文件SecondPackage.
我已经尝试手动删除所有相关的dcus,dcps和bpls并重建但无济于事.有任何想法吗?
我找到了Microsoft知识库文章:
但看起来他们希望我在创建密钥对后重新编译.有没有办法只需将程序集转换为强大的命名程序集而无需重新编译?
c# ×3
asp.net ×2
c++ ×2
.net ×1
assemblies ×1
bytearray ×1
canvas ×1
delphi ×1
g++ ×1
image ×1
javascript ×1
jquery ×1
linker ×1
linq ×1
packages ×1
parameters ×1
path ×1
raphael ×1
stream ×1
strongname ×1
svg ×1
try-catch ×1
url ×1
visual-c++ ×1
winforms ×1