我正在摆弄C#中的解析,发现对于我尝试过的每一个字符串,string.StartsWith("\u2D2D")都会返回true.这是为什么?
它似乎适用于每个char.用.Net 4.5尝试了这个代码,Debugger没有破解.
for (char i = char.MinValue; i < char.MaxValue; i++)
{
if(!i.ToString().StartsWith("\u2d2d"))
{
Debugger.Break();
}
}
Run Code Online (Sandbox Code Playgroud) 目标
我有几个接口和一些dll提供这些接口的实现.我要加载的实施进入一个新的AppDomain(这样我就可以卸载后的DLL)和instatiate在新的AppDomain执行,然后使用一个客户方(这里默认的AppDomain)代理来包装实际执行的对象.目标是创建这些ClientProxy实例一次,并在不将实现程序集加载到默认AppDomain时更改其实际实现.
问题
在ClientProxy __TransparentProxy对象上调用另一个ClientProxy作为参数的方法时,我得到以下异常:
System.Runtime.Remoting.RemotingException:
'The argument type 'System.MarshalByRefObject' cannot be converted into parameter type 'IData'.'
内部异常:
InvalidCastException的: Object must implement IConvertible.
传递直接从Server AppDomain获取的__TransparentProxy时,ClientProxy可以正常工作.
建立
可以从以下网址获取:https://github.com/mailgerigk/remoting
接口:
public interface IData
{
int Foo { get; set; }
}
public interface ILogic
{
void Update(IData data);
}
Run Code Online (Sandbox Code Playgroud)
_impl.dll中的接口Impl:
public class DataImpl : MarshalByRefObject, IData
{
public int Foo { get; set; }
}
public class LogicImpl : MarshalByRefObject, ILogic
{
public void Update(IData …Run Code Online (Sandbox Code Playgroud) 我在F#库中声明了一些我希望从C#代码中填充的数据类型.我遇到的问题是只有DU被"导出"为一个类,请考虑这个示例文件Test.fs:
module Test
type SimpleType = string
type SimpleList = string list
type SimpleDU =
| A
| B
type SimpleRecord = { Text : string }
Run Code Online (Sandbox Code Playgroud)
刚开始引用F#项目时我很困惑,我不允许在C#中使用SimpleType和SimpleList类型.我查看了生成的带有ILDasm的F#库,并且只找到了C#代码中可以完全访问的SimpleDU和SimpleRecord类型的代码.
有没有办法"导出"非DU类型,以便它们可以在C#中使用,或者我是否必须将每个非DU类型声明为显式记录?