使用文件夹隔离一个F#项目中的模块-可以吗?

时间:2019-06-24 10:42:56

标签: f# visual-studio-2017

我喜欢F#要求以依赖顺序组织文件和代码的方式,因为它会阻止无意识的耦合。

我有源文件atm的简单列表(简化):

function my_wps_shortcode( $attributes ) {
    extract( shortcode_atts( array(
        'id' => '',
    ), $attributes, 'my_woo_product_slider' ) );

    //  ...and then all the rest of the code
}

add_shortcode('my_woo_product_slider', 'my_wps_shortcode');

并想超越一步。首先,这样组织文件(VS 2017不能上下移动文件夹,需要编辑.fsproj,但这是另一回事-至少可以):

Common.fs
Workflow1.fs
Workflow2.fs

我希望Impl1.fs和Impl2.fs彼此完全隔离,因为它们的文件夹不在父/子关系中,但是Impl2.fs可以轻松地从Impl1.fs查看类型和功能:只需打开模块,它们可用

是否有任何使它们隔离的技术?可以将项目分成三个部分,但是我更喜欢将DLL保留为部署单元:工作流很小,理想情况下,我希望避免有很多微小的DLL文件。

2 个答案:

答案 0 :(得分:3)

听起来您对选项有一个很好的了解。您不会错过任何其他东西。因此,您的问题的答案是“否”。

答案 1 :(得分:2)

据我所知,您无法以这种方式隔离文件夹。但是,如果要在编译时将它们隔离,但可以作为一个单元进行部署,则可以创建单独的项目,并使用FodyILMerge来在编译后组合程序集。