在网站/ Web应用程序项目和脚本#/ ScriptSharp之间共享代码

我在我的网站项目中添加了一个Script#项目,并创建了一个包含两个类的小型示例库。 现在我想从网站代码中使用这些类。在这种情况下,我创建了一个简单的对象树并将其序列化为JSON(然后由客户端代码获取)。 我尝试添加对Script#项目的引用。它编译得很好,但在启动时会给我一个错误: 没有找到装配 运行时版本不同 甚至可以在Script#和普通C#之间共享代码? 我在VS 2010和.NET 3.5(两个项目)中使用脚本#0.6。     
已邀请:
代码完全可以共享。我依靠这个来重用通过Web服务发送的数据类。 你能做的是: 在“共享”文件夹中设置名为SharedTypes.cs的单个c-sharp文件。 然后,对于每个项目,右键单击项目节点,选择“添加” - >“现有项目”。浏览SharedTypes.cs,然后单击“添加”旁边的向下箭头,选择“添加为链接”。 在那里创建共享类。 将预处理器符号(例如“WEBSERVER”)添加到服务器端项目中。如果需要,这允许您在项目之间具有稍微不同的功能。 例:
public class MyDataPacket
{
    public int UserId;
    public string SomeData1;
    public int SomeData2;

#if SCRIPTSHARP
    public MyDataPacket(MyOtherClientSideClass arg)
    {
        // init
    }
#endif

#if WEBSERVER
    public MyDataPacket(MyOtherServerSideClass arg)
    {
        // init
    }
#endif
}
编辑:脚本#现在包含一个默认符号
SCRIPTSHARP
,意图比
!WEBSERVER
更清晰。     
在脚本#和c#之间共享代码的一种可能方法是添加源文件的链接。在VS中,您可以在将项目添加到项目时将源文件作为链接添加到项目中(文件未复制,而是添加对源文件的引用)。 在c#项目中,以正常方式添加相同的文件。结果是,每当您更改代码时,这些更改都将反映在两个项目中。编译文件时,c#项目中的文件将使用c#编译器编译,脚本#中的文件将使用脚本#compiler编译。 当然,您必须小心只使用c#和脚本#常用的功能。这限制了可能的用途,但也许数据结构可以这种方式共享。     
甚至可以在Script#和普通C#之间共享代码? 这实际上是不可能的。您的项目必须使用C#2.0,并且必须符合Script#的限制。相反,您可以设置自动播放器。 对我来说,我发现在Script#中设置第二个域模型更容易,我没有开始那么大的域模型。 请记住,脚本#只是编译为Javascript。     

要回复问题请先登录注册