F#带接口的结构,C#元数据不显示从接口的继承
奇怪的是,我有一个结构和一个记录。两者都实现了ITick接口,但是当在C中引用Tick时,元数据显示没有从接口继承。对于RedisTick记录类型,尽管接口是继承的 我是否在代码中遗漏了某些内容/这是一个bug/有什么问题 接口F#带接口的结构,C#元数据不显示从接口的继承,c#,class,struct,interface,f#,C#,Class,Struct,Interface,F#,奇怪的是,我有一个结构和一个记录。两者都实现了ITick接口,但是当在C中引用Tick时,元数据显示没有从接口继承。对于RedisTick记录类型,尽管接口是继承的 我是否在代码中遗漏了某些内容/这是一个bug/有什么问题 接口 类型ITick= 摘要符号:字符串 摘要日期:日期时间 摘要价格:十进制 摘要卷:int Struct 键入勾号(符号:字符串、日期:日期时间、价格:十进制、体积:整数)= 结构 此成员。Symbol=Symbol 此成员。日期=日期 请记住这个。价格=价格 此成员。
类型ITick=
摘要符号:字符串
摘要日期:日期时间
摘要价格:十进制
摘要卷:int
Struct
键入勾号(符号:字符串、日期:日期时间、价格:十进制、体积:整数)=
结构
此成员。Symbol=Symbol
此成员。日期=日期
请记住这个。价格=价格
此成员。卷=卷
接口ITick与
成员this.Symbol=this.Symbol
成员this.Date=this.Date
成员this.Price=this.Price
成员this.Volume=此.Volume
结束
记录
[]
类型RedisTick=
{符号:字符串
日期:日期时间
价格:十进制
卷:int}
接口ITick与
成员this.Symbol=this.Symbol
成员this.Date=this.Date
成员this.Price=this.Price
成员this.Volume=此.Volume
C#元数据:
用C#记录
[Microsoft.FSharp.Core.CLIMutableAttribute][Microsoft.FSharp.Core.compilementMappingAttribute]
公共密封类RedisTick:IEquatable、IStructuralEquatable、IComparable、IComparable、IStructuralComparable、ITick{
公共再贴现();
公共RedisTick(字符串符号、日期时间、十进制价格、整数体积);
[Microsoft.FSharp.Core.CompilationMappingAttribute]
公共日期时间日期{get;set;}
[Microsoft.FSharp.Core.CompilationMappingAttribute]
公共十进制价格{get;set;}
[Microsoft.FSharp.Core.CompilationMappingAttribute]
公共字符串符号{get;set;}
[Microsoft.FSharp.Core.CompilationMappingAttribute]
公共int卷{get;set;}
[编译生成]
公共密封覆盖int CompareTo(对象obj);
[编译生成]
公共密封超驰int CompareTo(RedisTick obj);
[编译生成]
公共密封覆盖int CompareTo(对象对象、i比较程序);
[编译生成]
公共密封覆盖布尔等于(对象obj);
[编译生成]
公共密封覆盖布尔等于(RedisTick obj);
[编译生成]
公共密封覆盖布尔等于(对象对象对象,IEqualityComparer comp);
[编译生成]
public sealed override int GetHashCode();
[编译生成]
公共密封重写int-GetHashCode(IEqualityComparer comp);}
C#中的结构
[Microsoft.FSharp.Core.CompilationMappingAttribute]
公共结构勾选:IEquatable、ISstructuralequatable、IComparable、IComparable、ISstructuralComparable
{
公共刻度(字符串符号、日期时间、十进制价格、整数体积);
公共日期时间日期{get;}
公共十进制价格{get;}
公共字符串符号{get;}
公共int卷{get;}
[编译生成]
公共密封覆盖int CompareTo(对象obj);
[编译生成]
公共密封超控int CompareTo(勾选obj);
[编译生成]
公共密封覆盖int CompareTo(对象对象、i比较程序);
[编译生成]
公共密封覆盖布尔等于(对象obj);
[编译生成]
公共密封覆盖布尔等于(勾选obj);
[编译生成]
公共密封覆盖布尔等于(对象对象对象,IEqualityComparer comp);
[编译生成]
public sealed override int GetHashCode();
[编译生成]
公共密封覆盖int GetHashCode(IEqualityComparer comp);
}
已解决在VS2015 RC中已修复 你能提供更多关于你的设置的信息吗?这在VS2015和Windows上的F#4.0中非常适合我。还有,以防万一:你试过重建你的F#项目吗?我也有同样的设置,是的,你试过一次彻底的重建。那么,从C#看,你的勾号结构实现了ITick接口?注意发布你的元数据,我很感兴趣!
[Microsoft.FSharp.Core.CLIMutableAttribute] [Microsoft.FSharp.Core.CompilationMappingAttribute]
public sealed class RedisTick : IEquatable<RedisTick>, IStructuralEquatable, IComparable<RedisTick>, IComparable, IStructuralComparable, ITick {
public RedisTick();
public RedisTick(string symbol, DateTime date, decimal price, int volume);
[Microsoft.FSharp.Core.CompilationMappingAttribute]
public DateTime Date { get; set; }
[Microsoft.FSharp.Core.CompilationMappingAttribute]
public decimal Price { get; set; }
[Microsoft.FSharp.Core.CompilationMappingAttribute]
public string Symbol { get; set; }
[Microsoft.FSharp.Core.CompilationMappingAttribute]
public int Volume { get; set; }
[CompilerGenerated]
public sealed override int CompareTo(object obj);
[CompilerGenerated]
public sealed override int CompareTo(RedisTick obj);
[CompilerGenerated]
public sealed override int CompareTo(object obj, IComparer comp);
[CompilerGenerated]
public sealed override bool Equals(object obj);
[CompilerGenerated]
public sealed override bool Equals(RedisTick obj);
[CompilerGenerated]
public sealed override bool Equals(object obj, IEqualityComparer comp);
[CompilerGenerated]
public sealed override int GetHashCode();
[CompilerGenerated]
public sealed override int GetHashCode(IEqualityComparer comp); }
[Microsoft.FSharp.Core.CompilationMappingAttribute]
public struct Tick : IEquatable<Tick>, IStructuralEquatable, IComparable<Tick>, IComparable, IStructuralComparable
{
public Tick(string symbol, DateTime date, decimal price, int volume);
public DateTime Date { get; }
public decimal Price { get; }
public string Symbol { get; }
public int Volume { get; }
[CompilerGenerated]
public sealed override int CompareTo(object obj);
[CompilerGenerated]
public sealed override int CompareTo(Tick obj);
[CompilerGenerated]
public sealed override int CompareTo(object obj, IComparer comp);
[CompilerGenerated]
public sealed override bool Equals(object obj);
[CompilerGenerated]
public sealed override bool Equals(Tick obj);
[CompilerGenerated]
public sealed override bool Equals(object obj, IEqualityComparer comp);
[CompilerGenerated]
public sealed override int GetHashCode();
[CompilerGenerated]
public sealed override int GetHashCode(IEqualityComparer comp);
}