- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 impromptu-interface 时如何访问 Duck Typed 代理对象.考虑我的示例代码,当我尝试将我的 Duck Typed Object 转换为代理对象时,我得到一个 InvalidCastException
:
using System;
using ImpromptuInterface;
namespace ConsoleApplication1
{
public class Duck
{
public string Says { get; set; }
public int GetNumberOfQuacksPerMinute()
{
return 42;
}
}
public interface IPondBird
{
string Says { get; set; }
}
class Program
{
static void Main(string[] args)
{
// Duck says Quack! Quack!! Quack!!!
var thing = new Duck { Says = "Quack! Quack!! Quack!!!" };
IPondBird myInterface = Impromptu.ActLike(thing);
// ...
// Later on, I want to get access to a proxied object, but I
// get a InvalidCastException here
Duck proxiedObject = (Duck) myInterface;
Console.WriteLine("Duck # quacks per minute: "
+ proxiedObject.GetNumberOfQuacksPerMinute());
}
}
}
异常情况如下:
An unhandled exception of type 'System.InvalidCastException' occurred in ConsoleApplication1.exe
Additional information: Unable to cast object of type 'ActLike_IPondBird_c7dd53902ec74f01a3844d4789244ea3' to type 'ConsoleApplication1.Duck'.
最佳答案
你不能。你可以考虑行
IPondBird myInterface = Impromptu.ActLike(thing);
好像是
public class Wrapper : IPondBird
{
public Wrapper(Duck duck) { ... }
}
IPondBird myInterface = new Wrapper(thing);
话虽如此,您可以将对 native 对象的引用作为契约(Contract)本身的一部分——例如:
public interface IPondBird
{
string Says { get; set; }
object NativeObject { get; }
}
public class Duck
{
public string Says { get; set; }
public int GetNumberOfQuacksPerMinute()
{
return 42;
}
public object NativeObject { get { return this; } }
}
IPondBird myInterface = Impromptu.ActLike(thing);
var duck = (Duck)myInterface.NativeObject;
关于c# - 如何使用即兴接口(interface)访问代理对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36400395/
确实需要一些帮助/逻辑。 我想在 jquery 即兴的 href 上传递一个 elementid,然后可以将其用于附加到目标 url。 也就是说;以 href 开头: Remove item 我想要它
我有两个表,tbl_foo 和 tbl_bar,我想用 tbl_foo.foo_id = tbl_bar.foo_id 加入这些表on子句。但是,对于每个 tbl_bar.baz_id,每个 tbl_
在最新的 jquery 1.9 下运行时,我收到了 impromptu ver 4.1 的错误 未捕获类型错误:无法读取未定义的属性“msie” 以前版本的 jquery 并非如此。 即兴的有问题的行
我是一名优秀的程序员,十分优秀!