我定义了一个具有一个通用方法DoSomething的以下示例类:
public static class MyClass
{
public static void DoSomething<T>(T val)
{
System.Diagnostics.Contracts.Contract.Requires(typeof(T).IsEnum);
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下枚举:
public enum MyEnum { A, B }
Run Code Online (Sandbox Code Playgroud)
现在我使用我的枚举实例调用该方法,如下所示:
class Program
{
static void Main(string[] args)
{
MyClass.DoSomething(MyEnum.A);
}
}
Run Code Online (Sandbox Code Playgroud)
在代码协定中启用静态检查后,在我调用方法的行显示以下警告:
CodeContracts:需要未经证实:typeof(T).IsEnum
如果在编译时知道该值,为什么它未经证实?
编辑
因为这显然不起作用,可能是因为Code Contracts不理解语义IsEnum或val is Enum(Jon也指出).我感兴趣,如果有任何已知的方法在代码合同中进行这种检查?
我创建了一个简单的WCF应用程序.该平台设置为Any CPU.我可以成功构建和运行应用程序.但是当我将平台更改为x64时,我收到以下错误:
无法添加服务.可能无法访问服务元数据.确保您的服务正在运行并公开元数据
我的系统有64位操作系统.实际上我必须将平台设置为x64以在我的应用程序中添加一个dll.这个错误的可能原因是什么?请帮我.
我正在使用IIS Express.
RecId Common在AX 2012中跨表唯一吗?我读到这是取决于版本的,但是我没有找到关于AX 2012的任何信息。
如果不是,这是否会打破AX中所有表从扩展的表的多态设计Common?并Common声明RecId...