Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法强制创建F#类型别名作为MSIL中的实际类型?_F#_Cil - Fatal编程技术网

有没有办法强制创建F#类型别名作为MSIL中的实际类型?

有没有办法强制创建F#类型别名作为MSIL中的实际类型?,f#,cil,F#,Cil,我正致力于从大量下游代码使用的大型F#库中提取一系列功能。由于这里无法解释的原因,我需要经过中间步骤,将我要查找的类型和模块移动到一个新的单独的F#项目和一个新的名称空间,并使用类型别名/缩写创建存根,它们以前在旧的大型库中的位置,如下所示:TypeBeingMoved=New.Namespace.TypeBeingMoved。对于模块,我必须更加明确,实际上为模块中定义的每个函数创建这样的存根(这有点乏味,但还行)。我们的想法是,我们需要为被拆分的库的当前用户提供几个版本,以便迁移到使用新的较

我正致力于从大量下游代码使用的大型F#库中提取一系列功能。由于这里无法解释的原因,我需要经过中间步骤,将我要查找的类型和模块移动到一个新的单独的F#项目和一个新的名称空间,并使用类型别名/缩写创建存根,它们以前在旧的大型库中的位置,如下所示:
TypeBeingMoved=New.Namespace.TypeBeingMoved
。对于模块,我必须更加明确,实际上为模块中定义的每个函数创建这样的存根(这有点乏味,但还行)。我们的想法是,我们需要为被拆分的库的当前用户提供几个版本,以便迁移到使用新的较小的库,通过强制编译器警告鼓励他们,我们将使旧的大型库存根发出——至少这是计划

这对于模块来说是可行的,这样的存根工作得很好


问题的出现是因为在将F#转换为MSIL的过程中故意“删除”了类型别名——请看——这样的想法是,您应该真正使用它们所指向的类型。我非常希望我的用户能够做到这一点,但不幸的是,我确实需要跳出上述的障碍。因此,我的用户当前的代码只是停止编译,因为用指向另一个库/命名空间的别名/缩写替换类型会导致该类型从原始库的DLL中消失。有没有办法强制从类型别名/缩写生成类型,或者有办法创建与类型别名/缩写等效的类型存根?

因此,F中的TypeForwardedTo的问题在于它似乎不受支持,请参阅